diff options
author | Anuj Phogat <[email protected]> | 2017-06-30 10:29:23 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2018-02-14 16:30:05 -0800 |
commit | 0cd37f9178d79ed62f1952939e1044cda5701a3a (patch) | |
tree | abfa6da31c4f2fdb680688b3efbfac68dcb3b326 | |
parent | 7be5f30bb1bbae7bba5ea52bd55c947ae131ca42 (diff) |
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 <[email protected]>
Signed-off-by: Anuj Phogat <[email protected]
Reviewed-by: Kenneth Graunke <[email protected]>
Cc: "18.0 17.3" <[email protected]>
-rw-r--r-- | src/intel/isl/isl_storage_image.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/intel/isl/isl_storage_image.c b/src/intel/isl/isl_storage_image.c index a8aebce6d49..20f6fd5faf6 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. */ |