From 006af589eeaed3217dccbcf8810ffe87f587403b Mon Sep 17 00:00:00 2001 From: Mel Henning Date: Mon, 21 Apr 2025 16:13:24 -0400 Subject: [PATCH] nvk: Override render enable for blits and resolves Fixes cts tests: dEQP-VK.conditional_rendering.conditional_ignore.blit_image dEQP-VK.conditional_rendering.conditional_ignore.blit_image_inverted dEQP-VK.conditional_rendering.conditional_ignore.resolve_image dEQP-VK.conditional_rendering.conditional_ignore.resolve_image_inverted which were introduced in vk-gl-cts commit 4aa277c300 Fixes: 32f2317223 ("nvk: Use meta for doing blits with the 3D hardware") Part-of: (cherry picked from commit 2fc4c98aaff49d54187724f0452fce6df23c60bf) --- .pick_status.json | 2 +- src/nouveau/vulkan/nvk_cmd_meta.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index f1e26da0310..f27b5ce471a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -504,7 +504,7 @@ "description": "nvk: Override render enable for blits and resolves", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "32f2317223c4e5dfc085bd1c0f506bd0831e7fb2", "notes": null diff --git a/src/nouveau/vulkan/nvk_cmd_meta.c b/src/nouveau/vulkan/nvk_cmd_meta.c index c433143bcd2..d4877cf0d24 100644 --- a/src/nouveau/vulkan/nvk_cmd_meta.c +++ b/src/nouveau/vulkan/nvk_cmd_meta.c @@ -77,7 +77,10 @@ nvk_meta_begin(struct nvk_cmd_buffer *cmd, { const struct nvk_descriptor_state *desc = &cmd->state.gfx.descriptors; - struct nv_push *p = nvk_cmd_buffer_push(cmd, 2); + struct nv_push *p = nvk_cmd_buffer_push(cmd, 4); + + P_IMMD(p, NV9097, SET_RENDER_ENABLE_OVERRIDE, MODE_ALWAYS_RENDER); + P_IMMD(p, NV9097, SET_STATISTICS_COUNTER, { .da_vertices_generated_enable = false, .da_primitives_generated_enable = false, @@ -203,7 +206,8 @@ nvk_meta_end(struct nvk_cmd_buffer *cmd, nvk_descriptor_state_set_root_array(cmd, desc, push, 0, sizeof(save->push), save->push); - struct nv_push *p = nvk_cmd_buffer_push(cmd, 2); + struct nv_push *p = nvk_cmd_buffer_push(cmd, 4); + P_IMMD(p, NV9097, SET_STATISTICS_COUNTER, { .da_vertices_generated_enable = true, .da_primitives_generated_enable = true, @@ -221,6 +225,8 @@ nvk_meta_end(struct nvk_cmd_buffer *cmd, .total_streaming_primitives_needed_succeeded_enable = true, .vtg_primitives_out_enable = true, }); + + P_IMMD(p, NV9097, SET_RENDER_ENABLE_OVERRIDE, MODE_USE_RENDER_ENABLE); } VKAPI_ATTR void VKAPI_CALL