mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 17:40:11 +01:00
zink: add has_edgeflags flag to zink_shader and zink_gfx_program
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21238>
This commit is contained in:
parent
24535ffb3d
commit
a93685ef55
3 changed files with 8 additions and 0 deletions
|
|
@ -4330,6 +4330,9 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
|
|||
struct zink_shader *ret = rzalloc(NULL, struct zink_shader);
|
||||
bool have_psiz = false;
|
||||
|
||||
ret->has_edgeflags = nir->info.stage == MESA_SHADER_VERTEX &&
|
||||
nir_find_variable_with_location(nir, nir_var_shader_out, VARYING_SLOT_EDGE);
|
||||
|
||||
ret->sinfo.have_vulkan_memory_model = screen->info.have_KHR_vulkan_memory_model;
|
||||
|
||||
util_queue_fence_init(&ret->precompile.fence);
|
||||
|
|
|
|||
|
|
@ -367,6 +367,7 @@ update_gfx_shader_modules(struct zink_context *ctx,
|
|||
bool default_variants = true;
|
||||
assert(prog->modules[MESA_SHADER_VERTEX]);
|
||||
uint32_t variant_hash = prog->last_variant_hash;
|
||||
prog->has_edgeflags = prog->shaders[MESA_SHADER_VERTEX]->has_edgeflags;
|
||||
for (unsigned i = 0; i < MESA_SHADER_COMPUTE; i++) {
|
||||
if (!(mask & BITFIELD_BIT(i)))
|
||||
continue;
|
||||
|
|
@ -1034,6 +1035,8 @@ zink_create_gfx_program(struct zink_context *ctx,
|
|||
prog->gfx_hash = gfx_hash;
|
||||
prog->base.removed = true;
|
||||
|
||||
prog->has_edgeflags = prog->shaders[MESA_SHADER_VERTEX] &&
|
||||
prog->shaders[MESA_SHADER_VERTEX]->has_edgeflags;
|
||||
for (int i = 0; i < ZINK_GFX_SHADER_COUNT; ++i) {
|
||||
util_dynarray_init(&prog->shader_cache[i][0][0], prog);
|
||||
util_dynarray_init(&prog->shader_cache[i][0][1], prog);
|
||||
|
|
|
|||
|
|
@ -736,6 +736,7 @@ struct zink_shader {
|
|||
bool bindless;
|
||||
bool can_inline;
|
||||
bool has_uniforms;
|
||||
bool has_edgeflags;
|
||||
struct spirv_shader *spirv;
|
||||
|
||||
struct {
|
||||
|
|
@ -1022,6 +1023,7 @@ struct zink_gfx_program {
|
|||
unsigned inlined_variant_count[ZINK_GFX_SHADER_COUNT];
|
||||
uint32_t default_variant_hash;
|
||||
uint8_t inline_variants; //which stages are using inlined uniforms
|
||||
bool has_edgeflags;
|
||||
|
||||
/* separable */
|
||||
struct zink_gfx_program *full_prog;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue