https://bugs.freedesktop.org/show_bug.cgi?id=92059
--- Comment #13 from Kai kai@dev.carbon-project.org --- (In reply to Ilia Mirkin from comment #12)
(In reply to Kai from comment #11)
(In reply to Ilia Mirkin from comment #10)
(In reply to Timothy Arceri from comment #9)
(In reply to Ilia Mirkin from comment #7)
(In reply to Kai from comment #5)
Also, the game seems to choke on the missing AoA functionality or at least doesn't check whether it can use AoA: > 0:9(23): error: GL_ARB_arrays_of_arrays required for defining arrays of arrays
I guess line 9 is: out vec4 vControlPoint[][2];
Which should work without AoA. I wonder if this was recently broken by the AoA support patches... Or maybe it started out broken.
It seems to me that this should fail, and is correctly doing so. From the tessellation spec:
[...]
Is there something I'm missing?
Quite right. I forgot about that little bit in the spec. So the issue here is that (a) AoA isn't supported in mesa, (b) even if it was, the shader doesn't enable it. Without that, you can't have plain per-vertex array outputs in TCS.
So, I should probably report this bug to Ferral Interactive (studio responsible for the Linux port), right?
That would be ideal.
Done (by e-mail). Lets see, if I hear back from them or if they fix it.
You could force-enable it by setting force_glsl_extensions_warn=1 and MESA_EXTENSION_OVERRIDE=GL_ARB_arrays_of_arrays ... I think.
The correct override is: # force_glsl_extensions_warn=true MESA_EXTENSION_OVERRIDE=GL_ARB_arrays_of_arrays Setting force_glsl_extension_warn=1 leads to an error. And indeed, setting those two environment variables leads to visible characters in the game, see the attached screenshot.
Should this bug be renamed to »[radeonsi] Implement GL_ARB_arrays_of_arrays for "Middle-earth: Shadow of Mordor"« then?
As I mentioned, merely having the ext available wouldn't make that shader compile. The ext would also have to be enabled in the shader.
Yes, I understand. But this would still leave radeonsi without required functionality. So making this bug about enabling GL_ARB_arrays_of_arrays for an application that (pretends*) to need it, seemed reasonable and more descriptive.
* I've played about 30 minutes now with those environment variables set and haven't noticed any visual corruption on radeonsi which doesn't expose GL_ARB_arrays_of_arrays. So I'm not sure if the game actually *needs* the extension?