Skip to content

Implements resource state manager for the gallium d3d12 layer

This change provides basic resource state management for the gallium d3d12 mapping layer, supporting explicit barriers (no implicit state promotion or decay). The d3d12_transition_resource_state function sets the most recent desired state of a given d3d12_resource object. The state manager keeps track of current and desired states for all d3d12_resource objects and efficiently applies all necessary pending transitions when d3d12_apply_resource_states is called.

This code is heavily based on the public D3D12TranslationLayer source (https://github.com/microsoft/D3D12TranslationLayer). For now most of the code retains the original coding style used in the D3D12TranslationLayer source. This is useful for now as additional D3D12TranslationLayer functionality may be pulled in to support implicit promotion and decay for simultaneous access resources. The coding style can be updated in a future merge request.

Piglit test cases pass and fail with identical results to a recent origin/master GL on 12 mapping layer. Running tests again with current base for this MR

Edited by Erik Faye-Lund

Merge request reports