mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
intel: Hook up RENDER_SURFACE_STATE::DecompressInL3
The sampler's decompressor seems to lack support for some types of format re-interpretation. Use the more capable decompressor for these cases. This will be needed to avoid regressing piglit's arb_texture_view-rendering-formats in later commits. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19937>
This commit is contained in:
parent
408f1c689c
commit
2add57d0c2
3 changed files with 16 additions and 0 deletions
|
|
@ -731,6 +731,7 @@
|
|||
<value name="180DEG" value="2" />
|
||||
<value name="270DEG" value="3" />
|
||||
</field>
|
||||
<field name="Decompress In L3" start="159" end="159" type="bool" />
|
||||
<field name="MIP Count / LOD" start="160" end="163" type="uint" />
|
||||
<field name="Surface Min LOD" start="164" end="167" type="uint" />
|
||||
<field name="Mip Tail Start LOD" start="168" end="171" type="uint" />
|
||||
|
|
|
|||
|
|
@ -774,6 +774,7 @@
|
|||
<value name="180DEG" value="2" />
|
||||
<value name="270DEG" value="3" />
|
||||
</field>
|
||||
<field name="Decompress In L3" start="159" end="159" type="bool" />
|
||||
<field name="MIP Count / LOD" start="160" end="163" type="uint" />
|
||||
<field name="Surface Min LOD" start="164" end="167" type="uint" />
|
||||
<field name="Mip Tail Start LOD" start="168" end="171" type="uint" />
|
||||
|
|
|
|||
|
|
@ -643,6 +643,20 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
|
|||
#endif
|
||||
#if GFX_VER >= 12
|
||||
s.MemoryCompressionEnable = info->aux_usage == ISL_AUX_USAGE_MC;
|
||||
|
||||
/* The Tiger Lake PRM for RENDER_SURFACE_STATE::DecompressInL3 says:
|
||||
*
|
||||
* When this field is set to 1h, the associated compressible surface,
|
||||
* when accessed by sampler and data-port, will be uncompressed in
|
||||
* L3. If the surface is not compressible, this bit field is ignored.
|
||||
*
|
||||
* The sampler's decompressor seems to lack support for some types of
|
||||
* format re-interpretation. Use the more capable decompressor for these
|
||||
* cases.
|
||||
*/
|
||||
s.DecompressInL3 =
|
||||
!isl_formats_have_same_bits_per_channel(info->surf->format,
|
||||
info->view->format);
|
||||
#endif
|
||||
#if GFX_VER >= 9
|
||||
/* Some CCS aux usages have format restrictions. The Skylake PRM doc for
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue