mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-19 00:10:27 +01:00
panfrost: Passthrough NATIVE loads/stores
Now that we handle load_output directly, this works for e.g. RGB565 on Midgard. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5285>
This commit is contained in:
parent
36af05bbde
commit
afc18c62d7
1 changed files with 18 additions and 0 deletions
|
|
@ -126,6 +126,17 @@ pan_format_class_store(const struct util_format_description *desc, unsigned quir
|
|||
return PAN_FORMAT_NATIVE;
|
||||
}
|
||||
|
||||
/* Convenience method */
|
||||
|
||||
static enum pan_format_class
|
||||
pan_format_class(const struct util_format_description *desc, unsigned quirks, bool is_store)
|
||||
{
|
||||
if (is_store)
|
||||
return pan_format_class_store(desc, quirks);
|
||||
else
|
||||
return pan_format_class_load(desc, quirks);
|
||||
}
|
||||
|
||||
/* Software packs/unpacks, by format class. Packs take in the pixel value typed
|
||||
* as `pan_unpacked_type_for_format` of the format and return an i32vec4
|
||||
* suitable for storing (with components replicated to fill). Unpacks do the
|
||||
|
|
@ -668,6 +679,13 @@ pan_lower_framebuffer(nir_shader *shader,
|
|||
if (!(is_load || is_store))
|
||||
continue;
|
||||
|
||||
enum pan_format_class fmt_class =
|
||||
pan_format_class(desc, quirks, is_store);
|
||||
|
||||
/* Don't lower */
|
||||
if (fmt_class == PAN_FORMAT_NATIVE)
|
||||
continue;
|
||||
|
||||
/* Don't worry about MRT */
|
||||
nir_variable *var = nir_intrinsic_get_var(intr, 0);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue