Module: Mesa Branch: staging/21.2 Commit: 7e7e0cab5a80ac1aa4d8ba7492164f21ef156e7a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e7e0cab5a80ac1aa4d8ba7492164f21ef156e7a
Author: Alyssa Rosenzweig <[email protected]> Date: Fri Jun 11 18:02:11 2021 -0400 panfrost: Use blendable check for tib read check These are the same! Either you're blendable and can use f32/f16 conversion, or you're raw and you can only get raw. It's that simple! Signed-off-by: Alyssa Rosenzweig <[email protected]> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11383> (cherry picked from commit 2cf581b1956e7ad54606c052bcec1ed0f25419c3) --- .pick_status.json | 2 +- .../drivers/panfrost/ci/deqp-panfrost-t860-fails.txt | 1 - src/gallium/drivers/panfrost/pan_context.c | 13 ++----------- src/panfrost/util/pan_lower_framebuffer.c | 4 ++-- src/panfrost/util/pan_lower_framebuffer.h | 2 -- 5 files changed, 5 insertions(+), 17 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index e9e0f41c210..08a05520bb4 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -364,7 +364,7 @@ "description": "panfrost: Use blendable check for tib read check", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/panfrost/ci/deqp-panfrost-t860-fails.txt b/src/gallium/drivers/panfrost/ci/deqp-panfrost-t860-fails.txt index bd49a590e45..bf7ba24b34f 100644 --- a/src/gallium/drivers/panfrost/ci/deqp-panfrost-t860-fails.txt +++ b/src/gallium/drivers/panfrost/ci/deqp-panfrost-t860-fails.txt @@ -81,7 +81,6 @@ dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec2_lowp_comp dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec3_lowp_compute,Fail dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.ivec3_highp_fragment,Fail dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec3_highp_fragment,Fail -dEQP-GLES31.functional.shaders.framebuffer_fetch.framebuffer_format.rgb10_a2,Fail dEQP-GLES31.functional.shaders.opaque_type_indexing.ssbo.const_expression_vertex,Fail dEQP-GLES31.functional.shaders.opaque_type_indexing.ssbo.const_literal_vertex,Fail dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.const_expression_fragment,Fail diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index f8a4326acc0..c4c94f5c300 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -364,8 +364,6 @@ panfrost_variant_matches( struct panfrost_shader_state *variant, enum pipe_shader_type type) { - struct panfrost_device *dev = pan_device(ctx->base.screen); - if (variant->info.stage == MESA_SHADER_FRAGMENT && variant->info.fs.outputs_read) { struct pipe_framebuffer_state *fb = &ctx->pipe_framebuffer; @@ -377,10 +375,7 @@ panfrost_variant_matches( if ((fb->nr_cbufs > i) && fb->cbufs[i]) fmt = fb->cbufs[i]->format; - const struct util_format_description *desc = - util_format_description(fmt); - - if (pan_format_class_load(desc, dev->quirks) == PAN_FORMAT_NATIVE) + if (panfrost_blendable_formats_v6[fmt].internal) fmt = PIPE_FORMAT_NONE; if (variant->rt_formats[i] != fmt) @@ -442,7 +437,6 @@ panfrost_bind_shader_state( enum pipe_shader_type type) { struct panfrost_context *ctx = pan_context(pctx); - struct panfrost_device *dev = pan_device(ctx->base.screen); ctx->shader[type] = hwcso; ctx->dirty |= PAN_DIRTY_TLS_SIZE; @@ -498,10 +492,7 @@ panfrost_bind_shader_state( if ((fb->nr_cbufs > i) && fb->cbufs[i]) fmt = fb->cbufs[i]->format; - const struct util_format_description *desc = - util_format_description(fmt); - - if (pan_format_class_load(desc, dev->quirks) == PAN_FORMAT_NATIVE) + if (panfrost_blendable_formats_v6[fmt].internal) fmt = PIPE_FORMAT_NONE; v->rt_formats[i] = fmt; diff --git a/src/panfrost/util/pan_lower_framebuffer.c b/src/panfrost/util/pan_lower_framebuffer.c index 8c64d5cf5fe..fb644120fbb 100644 --- a/src/panfrost/util/pan_lower_framebuffer.c +++ b/src/panfrost/util/pan_lower_framebuffer.c @@ -87,7 +87,7 @@ pan_unpacked_type_for_format(const struct util_format_description *desc) } } -enum pan_format_class +static enum pan_format_class pan_format_class_load(const struct util_format_description *desc, unsigned quirks) { /* Pure integers can be loaded via EXT_framebuffer_fetch and should be @@ -124,7 +124,7 @@ pan_format_class_load(const struct util_format_description *desc, unsigned quirk return PAN_FORMAT_NATIVE; } -enum pan_format_class +static enum pan_format_class pan_format_class_store(const struct util_format_description *desc, unsigned quirks) { /* Check if we can do anything better than software architecturally */ diff --git a/src/panfrost/util/pan_lower_framebuffer.h b/src/panfrost/util/pan_lower_framebuffer.h index bce18e7cbab..5491cd346b1 100644 --- a/src/panfrost/util/pan_lower_framebuffer.h +++ b/src/panfrost/util/pan_lower_framebuffer.h @@ -40,8 +40,6 @@ enum pan_format_class { }; nir_alu_type pan_unpacked_type_for_format(const struct util_format_description *desc); -enum pan_format_class pan_format_class_load(const struct util_format_description *desc, unsigned quirks); -enum pan_format_class pan_format_class_store(const struct util_format_description *desc, unsigned quirks); bool pan_lower_framebuffer(nir_shader *shader, const enum pipe_format *rt_fmts, bool is_blend, unsigned quirks);
