mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-27 15:20:37 +02:00
panfrost: Add a knob to disable the UBO -> push constants optimization
I'm just too lazy to implement the logic to prepare push constant buffers in the Vulkan driver. Besides, Vulkan has explicit push constants, which AFAIK is not handled in the compiler backends yet, and that will probably conflict with the UBO -> push constant promotion. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9517>
This commit is contained in:
parent
2229328cf9
commit
92d9f090d9
3 changed files with 7 additions and 0 deletions
|
|
@ -118,6 +118,9 @@ bi_pick_ubo(struct panfrost_ubo_push *push, struct bi_ubo_analysis *analysis)
|
|||
void
|
||||
bi_opt_push_ubo(bi_context *ctx)
|
||||
{
|
||||
if (ctx->inputs->no_ubo_to_push)
|
||||
return;
|
||||
|
||||
/* This pass only runs once */
|
||||
assert(ctx->info->push.count == 0);
|
||||
|
||||
|
|
|
|||
|
|
@ -258,6 +258,9 @@ mir_special_indices(compiler_context *ctx)
|
|||
void
|
||||
midgard_promote_uniforms(compiler_context *ctx)
|
||||
{
|
||||
if (ctx->inputs->no_ubo_to_push)
|
||||
return;
|
||||
|
||||
struct mir_ubo_analysis analysis = mir_analyze_ranges(ctx);
|
||||
|
||||
unsigned work_count = mir_work_heuristic(ctx, &analysis);
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ struct panfrost_compile_inputs {
|
|||
uint64_t bifrost_blend_desc;
|
||||
} blend;
|
||||
bool shaderdb;
|
||||
bool no_ubo_to_push;
|
||||
|
||||
enum pipe_format rt_formats[8];
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue