zink: use a zink_render_pass_pipeline_state bit for fbfetch

improve compatibility detection

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16621>
(cherry picked from commit f4aa727e44)
This commit is contained in:
Mike Blumenkrantz 2022-05-19 19:37:05 -04:00 committed by Dylan Baker
parent d83ac7b2a6
commit b348e4f0e0
3 changed files with 4 additions and 2 deletions

View file

@ -193,7 +193,7 @@
"description": "zink: use a zink_render_pass_pipeline_state bit for fbfetch",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -195,6 +195,7 @@ create_render_pass2(struct zink_screen *screen, struct zink_render_pass_state *s
memcpy(&input_attachments[input_count++], &color_refs[i], sizeof(VkAttachmentReference2));
dep_pipeline |= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
dep_access |= VK_ACCESS_INPUT_ATTACHMENT_READ_BIT;
pstate->fbfetch = 1;
}
dep_access |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
if (attachments[i].loadOp == VK_ATTACHMENT_LOAD_OP_LOAD)

View file

@ -66,7 +66,8 @@ struct zink_pipeline_rt {
};
struct zink_render_pass_pipeline_state {
uint32_t num_attachments:26;
uint32_t num_attachments:25;
uint32_t fbfetch:1;
uint32_t num_cresolves:4;
uint32_t num_zsresolves:1;
bool samples:1; //for fs samplemask