summaryrefslogtreecommitdiff
path: root/src/amd
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2019-06-13 12:44:03 +0200
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>2019-06-17 11:30:49 +0200
commite9875fc0b648058a995cf16fc380bf8e75330fa6 (patch)
tree89930e01a110396700ed7b8af76c1a4ddb005074 /src/amd
parent4c7ef1b02e371597ab7b46ecf390de1272e95dab (diff)
downloadmesa-e9875fc0b648058a995cf16fc380bf8e75330fa6.tar.gz
radv: make sure to init the DCC decompress compute path state
This fixes a segfault when forcing DCC decompressions on compute because internal meta objects are not created since the on-demand stuff. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-By: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Diffstat (limited to 'src/amd')
-rw-r--r--src/amd/vulkan/radv_meta_fast_clear.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_meta_fast_clear.c b/src/amd/vulkan/radv_meta_fast_clear.c
index 8f97c1a8f15..176f9803b45 100644
--- a/src/amd/vulkan/radv_meta_fast_clear.c
+++ b/src/amd/vulkan/radv_meta_fast_clear.c
@@ -753,6 +753,14 @@ radv_decompress_dcc_compute(struct radv_cmd_buffer *cmd_buffer,
state->flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB |
RADV_CMD_FLAG_FLUSH_AND_INV_CB_META;
+ if (!cmd_buffer->device->meta_state.fast_clear_flush.cmask_eliminate_pipeline) {
+ VkResult ret = radv_device_init_meta_fast_clear_flush_state_internal(cmd_buffer->device);
+ if (ret != VK_SUCCESS) {
+ cmd_buffer->record_result = ret;
+ return;
+ }
+ }
+
radv_meta_save(&saved_state, cmd_buffer, RADV_META_SAVE_DESCRIPTORS |
RADV_META_SAVE_COMPUTE_PIPELINE);