[Bug 97447] GL 3.0 compatibility context exposes GL_ARB_compute_shader

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Aug 30 23:44:32 UTC 2016


https://bugs.freedesktop.org/show_bug.cgi?id=97447

--- Comment #9 from Evan Odabashian <evan at techsoft3d.com> ---
(In reply to Jordan Justen from comment #8)
> (In reply to Ilia Mirkin from comment #7)
> > (In reply to Evan Odabashian from comment #6)
> > > error: Too many compute shader texture samplers
> > > error: Too many compute shader image uniforms (1 > 0)
> > > 
> > > (this shader has one image and one sampler)
> > > 
> > > Querying MAX_COMPUTE_TEXTURE_IMAGE_UNITS and MAX_COMPUTE_IMAGE_UNIFORMS both
> > > return 0 on this context, while the ARB_compute_shader spec says the minimum
> > > values for these should be 16 and 8 respectively.
> > 
> > That sounds like a bug specific to i965 initialization, trivially fixable.
> 
> I think updating the stage_exists init in
> brw_initialize_context_constants might help this.
> 
> Right now it will always set stage_exits[MESA_SHADER_COMPUTE]
> to false when ctx->API == API_OPENGL_COMPAT.

I tried hacking the brw_initialize_context_constants code to set
stage_exists[MESA_SHADER_COMPUTE] to true for the compatibility context and
tested my application again. I have non-zero MAX_COMPUTE_TEXTURE_IMAGE_UNITS
and MAX_COMPUTE_IMAGE_UNIFORMS now, but my shader fails to compile with:

error: extension `GL_ARB_image_load_store' unsupported in compute shader

And of course if I disable that extension I'm back to the error I had
originally:

error: unrecognized layout identifier `r32f'

caused by this line in the shader:

layout(r32f, binding = 1) uniform writeonly image2D outTexture;

Re: the proposal to remove 'GLL' for ARB_compute_shader in the extension table,
this would remove it from compatibility contexts in all drivers (not just
i965)? I'm not very familiar with mesa (as is probably evident) but if there
are other drivers with compat. profiles that can support compute shaders then I
would agree it seems heavy handed to take it away from them. On Windows for
instance all compatibility profiles on Intel, Nvidia, AMD can do compute
shaders and everything else their core profiles can generally. Is there a way
to just not advertise ARB_compute_shader specifically for the i965 compat.
profile?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20160830/02de5231/attachment.html>


More information about the intel-3d-bugs mailing list