mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
zink: disable shader objects when viewmask is set
this is not supported by EXT_shader_object Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33005>
This commit is contained in:
parent
50c7d05568
commit
53cb103af2
2 changed files with 4 additions and 2 deletions
|
|
@ -1263,7 +1263,7 @@ create_gfx_program_separable(struct zink_context *ctx, struct zink_shader **stag
|
|||
|
||||
prog->is_separable = true;
|
||||
prog->gfx_hash = ctx->gfx_hash;
|
||||
prog->base.uses_shobj = screen->info.have_EXT_shader_object;
|
||||
prog->base.uses_shobj = screen->info.have_EXT_shader_object && !stages[MESA_SHADER_VERTEX]->info.view_mask && !BITSET_TEST(stages[MESA_SHADER_FRAGMENT]->info.system_values_read, SYSTEM_VALUE_SAMPLE_MASK_IN);
|
||||
|
||||
prog->stages_remaining = prog->stages_present = ctx->shader_stages;
|
||||
memcpy(prog->shaders, stages, sizeof(prog->shaders));
|
||||
|
|
@ -2247,7 +2247,7 @@ zink_link_gfx_shader(struct pipe_context *pctx, void **shaders)
|
|||
VKSCR(DestroyPipeline)(screen->dev, pipeline, NULL);
|
||||
} else {
|
||||
if (zink_screen(pctx->screen)->info.have_EXT_shader_object)
|
||||
prog->base.uses_shobj = !BITSET_TEST(zshaders[MESA_SHADER_FRAGMENT]->info.system_values_read, SYSTEM_VALUE_SAMPLE_MASK_IN);
|
||||
prog->base.uses_shobj = !zshaders[MESA_SHADER_VERTEX]->info.view_mask && !BITSET_TEST(zshaders[MESA_SHADER_FRAGMENT]->info.system_values_read, SYSTEM_VALUE_SAMPLE_MASK_IN);
|
||||
if (zink_debug & ZINK_DEBUG_NOBGC)
|
||||
gfx_program_precompile_job(prog, pctx->screen, 0);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -426,6 +426,8 @@ zink_can_use_shader_objects(const struct zink_context *ctx)
|
|||
ZINK_SHADER_KEY_OPTIMAL_IS_DEFAULT(ctx->gfx_pipeline_state.optimal_key) &&
|
||||
/* TODO: is sample shading even possible to handle with GPL? */
|
||||
!ctx->gfx_stages[MESA_SHADER_FRAGMENT]->info.fs.uses_sample_shading &&
|
||||
/* TODO: maybe someday shader objects + viewmask */
|
||||
!ctx->gfx_stages[MESA_SHADER_VERTEX]->info.view_mask &&
|
||||
!ctx->gfx_pipeline_state.force_persample_interp &&
|
||||
!ctx->gfx_pipeline_state.min_samples &&
|
||||
!ctx->is_generated_gs_bound;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue