radv: save/restore all viewports/scissors for meta operations
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 25 Sep 2017 12:02:49 +0000 (14:02 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 25 Sep 2017 18:31:55 +0000 (20:31 +0200)
commit1cf508b73181ec0b4406bdfa10662a49e690d774
tree540ac04673f603980b6a9b817554372b47cec681
parent0509b27b9db8cd4c4cc049f192ade4fb23b26660
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 <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_meta.c
src/amd/vulkan/radv_meta.h
src/amd/vulkan/radv_private.h