diff options
author | Samuel Pitoiset <[email protected]> | 2017-09-25 14:02:49 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-09-25 20:31:55 +0200 |
commit | 1cf508b73181ec0b4406bdfa10662a49e690d774 (patch) | |
tree | 540ac04673f603980b6a9b817554372b47cec681 /src/amd/vulkan/radv_meta.h | |
parent | 0509b27b9db8cd4c4cc049f192ade4fb23b26660 (diff) |
radv: save/restore all viewports/scissors for meta operations
This is needed since we don't update the number of viewports/scissors
when they are set dynamically (according to the spec). In the following
scenario:
* vkCmdSetViewport()
* vkCmdClearColorImage() (or any other meta operations)
The viewports/scissors weren't saved correctly because no pipeline
was bound before, and thus the number of viewports/scissors were 0.
This fixes a regression with:
dEQP-VK.draw.negative_viewport_height.front_ccw_cull_back
Fixes: 60878dd00c ("radv: do not update the number of viewports in vkCmdSetViewport()")
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_meta.h')
-rw-r--r-- | src/amd/vulkan/radv_meta.h | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/amd/vulkan/radv_meta.h b/src/amd/vulkan/radv_meta.h index 5d28cc5f0f9..c7c9a6bd5e1 100644 --- a/src/amd/vulkan/radv_meta.h +++ b/src/amd/vulkan/radv_meta.h @@ -36,14 +36,10 @@ extern "C" { #define RADV_META_VERTEX_BINDING_COUNT 2 struct radv_meta_saved_state { - /** - * Bitmask of (1 << VK_DYNAMIC_STATE_*). Defines the set of saved dynamic - * state. - */ - uint32_t dynamic_mask; - struct radv_dynamic_state dynamic; struct radv_descriptor_set *old_descriptor_set0; struct radv_pipeline *old_pipeline; + struct radv_viewport_state viewport; + struct radv_scissor_state scissor; char push_constants[128]; }; |