mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
nvk: Call INVALIDATE_RASTER_CACHE for shading rate
Fixes VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR to match what the proprietary driver emits for that barrier type. Reviewed-by: Mary Guillemard <mary@mary.zone> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37857>
This commit is contained in:
parent
f7725299c3
commit
f725685428
1 changed files with 9 additions and 1 deletions
|
|
@ -443,6 +443,7 @@ enum nvk_barrier {
|
|||
NVK_BARRIER_INVALIDATE_CONSTANT = 1 << 4,
|
||||
NVK_BARRIER_INVALIDATE_MME_DATA = 1 << 5,
|
||||
NVK_BARRIER_INVALIDATE_QMD_DATA = 1 << 6,
|
||||
NVK_BARRIER_INVALIDATE_RASTER_CACHE = 1 << 7,
|
||||
};
|
||||
|
||||
static enum nvk_barrier
|
||||
|
|
@ -503,6 +504,9 @@ nvk_barrier_invalidates(VkPipelineStageFlags2 stages,
|
|||
VK_PIPELINE_STAGE_2_BLIT_BIT)))
|
||||
barriers |= NVK_BARRIER_INVALIDATE_TEX_DATA;
|
||||
|
||||
if (access & VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR)
|
||||
barriers |= NVK_BARRIER_INVALIDATE_RASTER_CACHE;
|
||||
|
||||
return barriers;
|
||||
}
|
||||
|
||||
|
|
@ -625,7 +629,7 @@ nvk_cmd_invalidate_deps(struct nvk_cmd_buffer *cmd,
|
|||
if (!barriers)
|
||||
return;
|
||||
|
||||
struct nv_push *p = nvk_cmd_buffer_push(cmd, 16);
|
||||
struct nv_push *p = nvk_cmd_buffer_push(cmd, 18);
|
||||
|
||||
if (barriers & NVK_BARRIER_INVALIDATE_TEX_DATA) {
|
||||
if (pdev->info.cls_eng3d >= MAXWELL_A) {
|
||||
|
|
@ -656,6 +660,10 @@ nvk_cmd_invalidate_deps(struct nvk_cmd_buffer *cmd,
|
|||
}
|
||||
}
|
||||
|
||||
if (barriers & NVK_BARRIER_INVALIDATE_RASTER_CACHE &&
|
||||
dev->vk.enabled_features.pipelineFragmentShadingRate)
|
||||
P_IMMD(p, NVC597, INVALIDATE_RASTER_CACHE_NO_WFI, 0);
|
||||
|
||||
if (barriers & (NVK_BARRIER_INVALIDATE_SHADER_DATA &
|
||||
NVK_BARRIER_INVALIDATE_CONSTANT)) {
|
||||
if (nvk_cmd_buffer_last_subchannel(cmd) == SUBC_NVA097) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue