#1772 proposes adding read-write storage textures, and mentions that support will have to depend on the format.
This proposal suggests how read-write texture formats should be bucketed.
-
rw-storage-texture-tier-1 extension covers:
Metal: Needs MTLReadWriteTextureTier1
D3D FL11: Available
Vulkan: Available
OpenGL ES 3.1: Available
-
rw-storage-texture-tier-2 extension covers:
rgba32float
rgba32uint
rgba32sint
rgba16float
rgba16uint
rgba16sint
rgba8unorm
rgba8uint
rgba8sint
Metal: Needs MTLReadWriteTextureTier2
D3D FL11: Optional (see D3D Docs)
Vulkan: Available
OpenGL ES 3.1: Available
-
rw-storage-texture-tier-3 extension covers:
r16float
r16uint
r16sint
r8unorm
r8uint
r8sint
Metal: Needs MTLReadWriteTextureTier2
D3D FL11: Optional (see D3D Docs)
Vulkan: Needs shaderStorageImageExtendedFormats
OpenGL ES 3.1: Unavailable
Note that rw-storage-texture-tier-3 might not be required if we require rw-storage-texture-tier-2 + formats-tier-1 for the respective formats.