-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gl: Avoid UBO/SSBO binding index collisions #12676
Conversation
Just testing NFS Rivals. Haven't tried anything else yet Really long error·F 0:00:50.146410 {RSX [0x001fd40]} RSX: Compilation failed: 0(8) : error C3012: invalid value '8' for layout qualifier 'binding' source: #define IMAGE_LOCATION(x) (x + 8) layout(binding=IMAGE_LOCATION(0)) uniform writeonly restrict image2D output2D; #define FMT_GL_RGBA8 0x8058 #define bswap_u16(bits) (bits & 0xFF) << 8 | (bits & 0xFF00) >> 8 | (bits & 0xFF0000) << 8 | (bits & 0xFF000000) >> 8 layout(binding=SSBO_LOCATION(0), std430) readonly restrict buffer RawDataBlock #if USE_UBO uint linear_invocation_id() ivec2 linear_id_to_output_coord(uint index) // Decoders. Beware of multi-wide swapped types (e.g swap(16x2) != swap(32x1)) uint readUint16(const in uint address)
} uint readUint32(const in uint address) uvec2 readUint8x2(const in uint address) ivec2 readInt8x2(const in uint address) #define readFixed8(address) readUint8(address) / 255.f vec4 readFixed8x4(const in uint address) #define readFixed16(address) readUint16(uint(address)) / 65535.f #define readFloat16(address) unpackHalf2x16(readUint16(uint(address))).x #define readFloat32(address) uintBitsToFloat(readUint32(address)) #define KERNEL_SIZE 8 void write_output(const in uint invocation_id)
} void main()
} ·W 0:00:50.146754 {RSX [0x001fd40]} SYS: Emulation has been frozen! You can either use debugger tools to inspect current emulation state or terminate it. |
K everything with OpenGL is outputting that error right after SPU cache before anything related to the game |
- Some drivers don't like this. Actually only RADV. - Almost all GPUs going back 15 years have a large number of UBO slots but limited SSBO slots. Move UBO slots up as we have tons more headroom there.
NVIDIA only supports 8 compute image slots even on modern GPUs.
446e9fd
to
68e8ee4
Compare
NVIDIA only supports 8 compute image slots. Fixed now. |
I was reading about that only has 8. I was actually being directed towards that not being true however when I was reading and don't know where to confirm. |
https://opengl.gpuinfo.org/displayreport.php?id=7899 GL_MAX_COMPUTE_IMAGE_UNIFORMS = 8 |
AMD always has 32 since GCN1 so the limit of 8 for new NVIDIA cards was unexpected. |
Fixes #12476