freedreno: Use fast variants of {BC4/BC5}_SNORM formats

Hardware has two types of BC4 and BC5: fast and not.
The exact perf difference is not tested, but these distinct formats
could be seen in the public docs:
Qualcomm Adreno GPU > Spec Sheet -> Texture format
https://docs.qualcomm.com/bundle/publicresource/topics/80-78185-2/spec_sheets.html?product=1601111740035277#panel-0-0-1

Found when scanning prop driver's cmdstream seeing unknown format.

Passes:
dEQP-VK.*bc4*
dEQP-VK.*bc5*

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33945>
This commit is contained in:
Danylo Piliaiev 2025-03-06 19:29:12 +01:00 committed by Marge Bot
parent 5a5b00cfca
commit 398f14ca3d
2 changed files with 14 additions and 10 deletions

View file

@ -312,14 +312,14 @@ static const struct fd6_format formats[PIPE_FORMAT_COUNT] = {
_T_(BPTC_RGB_FLOAT, BPTC_FLOAT, WZYX),
_T_(BPTC_RGB_UFLOAT, BPTC_UFLOAT, WZYX),
_T_(RGTC1_UNORM, RGTC1_UNORM, WZYX),
_T_(RGTC1_SNORM, RGTC1_SNORM, WZYX),
_T_(RGTC2_UNORM, RGTC2_UNORM, WZYX),
_T_(RGTC2_SNORM, RGTC2_SNORM, WZYX),
_T_(LATC1_UNORM, RGTC1_UNORM, WZYX),
_T_(LATC1_SNORM, RGTC1_SNORM, WZYX),
_T_(LATC2_UNORM, RGTC2_UNORM, WZYX),
_T_(LATC2_SNORM, RGTC2_SNORM, WZYX),
_T_(RGTC1_UNORM, RGTC1_UNORM_FAST, WZYX),
_T_(RGTC1_SNORM, RGTC1_SNORM_FAST, WZYX),
_T_(RGTC2_UNORM, RGTC2_UNORM_FAST, WZYX),
_T_(RGTC2_SNORM, RGTC2_SNORM_FAST, WZYX),
_T_(LATC1_UNORM, RGTC1_UNORM_FAST, WZYX),
_T_(LATC1_SNORM, RGTC1_SNORM_FAST, WZYX),
_T_(LATC2_UNORM, RGTC2_UNORM_FAST, WZYX),
_T_(LATC2_SNORM, RGTC2_SNORM_FAST, WZYX),
_T_(ASTC_4x4, ASTC_4x4, WZYX),
_T_(ASTC_5x4, ASTC_5x4, WZYX),

View file

@ -155,10 +155,14 @@ by a particular renderpass/blit.
<value value="0xb3" name="FMT6_DXT1"/>
<value value="0xb4" name="FMT6_DXT3"/>
<value value="0xb5" name="FMT6_DXT5"/>
<value value="0xb7" name="FMT6_RGTC1_UNORM"/>
<value value="0xb6" name="FMT6_RGTC1_UNORM"/>
<value value="0xb7" name="FMT6_RGTC1_UNORM_FAST"/>
<value value="0xb8" name="FMT6_RGTC1_SNORM"/>
<value value="0xbb" name="FMT6_RGTC2_UNORM"/>
<value value="0xb9" name="FMT6_RGTC1_SNORM_FAST"/>
<value value="0xba" name="FMT6_RGTC2_UNORM"/>
<value value="0xbb" name="FMT6_RGTC2_UNORM_FAST"/>
<value value="0xbc" name="FMT6_RGTC2_SNORM"/>
<value value="0xbd" name="FMT6_RGTC2_SNORM_FAST"/>
<value value="0xbe" name="FMT6_BPTC_UFLOAT"/>
<value value="0xbf" name="FMT6_BPTC_FLOAT"/>
<value value="0xc0" name="FMT6_BPTC"/>