Mesa (master): isl: Don't use surface format R32_FLOAT for typed atomic integer operations
Kenneth Graunke
kwg at kemper.freedesktop.org
Thu Feb 15 00:30:14 UTC 2018
Module: Mesa
Branch: master
Commit: 0cd37f9178d79ed62f1952939e1044cda5701a3a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0cd37f9178d79ed62f1952939e1044cda5701a3a
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Fri Jun 30 10:29:23 2017 -0700
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 at riseup.net>
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.co
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Cc: "18.0 17.3" <mesa-stable at lists.freedesktop.org>
---
src/intel/isl/isl_storage_image.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/intel/isl/isl_storage_image.c b/src/intel/isl/isl_storage_image.c
index a8aebce6d4..20f6fd5faf 100644
--- a/src/intel/isl/isl_storage_image.c
+++ b/src/intel/isl/isl_storage_image.c
@@ -88,9 +88,16 @@ isl_lower_storage_image_format(const struct gen_device_info *devinfo,
case ISL_FORMAT_R32G32B32A32_FLOAT:
case ISL_FORMAT_R32_UINT:
case ISL_FORMAT_R32_SINT:
- case ISL_FORMAT_R32_FLOAT:
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
* RGBA_UINT16. IVB falls back to untyped.
*/
More information about the mesa-commit
mailing list