isl: Don't use surface format R32_FLOAT for typed atomic integer operations
From Skylake PRM Surface Formats section: "The surface format for the typed atomic integer operations must be R32_UINT or R32_SINT." Fixes an error and a piglit GPU hang in simulation environment. Piglit test: gl45-imageAtomicExchange-float.shader_test Suggested-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Anuj Phogat <anuj.phogat@gmail.co Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Cc: "18.0 17.3" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
7be5f30bb1
commit
0cd37f9178
|
@ -88,9 +88,16 @@ isl_lower_storage_image_format(const struct gen_device_info *devinfo,
|
||||||
case ISL_FORMAT_R32G32B32A32_FLOAT:
|
case ISL_FORMAT_R32G32B32A32_FLOAT:
|
||||||
case ISL_FORMAT_R32_UINT:
|
case ISL_FORMAT_R32_UINT:
|
||||||
case ISL_FORMAT_R32_SINT:
|
case ISL_FORMAT_R32_SINT:
|
||||||
case ISL_FORMAT_R32_FLOAT:
|
|
||||||
return format;
|
return format;
|
||||||
|
|
||||||
|
/* The Skylake PRM's "Surface Formats" section says:
|
||||||
|
*
|
||||||
|
* "The surface format for the typed atomic integer operations must
|
||||||
|
* be R32_UINT or R32_SINT."
|
||||||
|
*/
|
||||||
|
case ISL_FORMAT_R32_FLOAT:
|
||||||
|
return ISL_FORMAT_R32_UINT;
|
||||||
|
|
||||||
/* From HSW to BDW the only 64bpp format supported for typed access is
|
/* From HSW to BDW the only 64bpp format supported for typed access is
|
||||||
* RGBA_UINT16. IVB falls back to untyped.
|
* RGBA_UINT16. IVB falls back to untyped.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue