summaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_meta.c
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-04-27 01:47:22 +0100
committerDave Airlie <[email protected]>2017-05-07 23:41:39 +0100
commit69136f4e633be4eeed0b226b02c9876511414b76 (patch)
tree4d7caf5fcc415a1f900d9378903f745f2e234fbc /src/amd/vulkan/radv_meta.c
parent19be95f71e6e0fbb00032d5b52f7b0c95ecd49db (diff)
radv/meta: add resolve pass using fragment/vertex shaders
In order to resolve into DCC enabled dests we need to use the fragment shader. This reuses the code from the compute path and implements a resolve path in vertex/fragment shader. This code isn't used until later. Reviewed-by: Bas Nieuwenhuizen <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_meta.c')
-rw-r--r--src/amd/vulkan/radv_meta.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_meta.c b/src/amd/vulkan/radv_meta.c
index 3155f07f6ab..5899e77e0f9 100644
--- a/src/amd/vulkan/radv_meta.c
+++ b/src/amd/vulkan/radv_meta.c
@@ -350,8 +350,14 @@ radv_device_init_meta(struct radv_device *device)
result = radv_device_init_meta_resolve_compute_state(device);
if (result != VK_SUCCESS)
goto fail_resolve_compute;
+
+ result = radv_device_init_meta_resolve_fragment_state(device);
+ if (result != VK_SUCCESS)
+ goto fail_resolve_fragment;
return VK_SUCCESS;
+fail_resolve_fragment:
+ radv_device_finish_meta_resolve_compute_state(device);
fail_resolve_compute:
radv_device_finish_meta_fast_clear_flush_state(device);
fail_fast_clear:
@@ -388,6 +394,7 @@ radv_device_finish_meta(struct radv_device *device)
radv_device_finish_meta_buffer_state(device);
radv_device_finish_meta_fast_clear_flush_state(device);
radv_device_finish_meta_resolve_compute_state(device);
+ radv_device_finish_meta_resolve_fragment_state(device);
radv_store_meta_pipeline(device);
radv_pipeline_cache_finish(&device->meta_state.cache);