[Mesa-dev] [PATCH] [RFC] MESA_shading_language_130: is this it?

Dave Airlie airlied at gmail.com
Tue Dec 2 14:46:43 PST 2014


On 3 December 2014 at 07:32, Ian Romanick <idr at freedesktop.org> wrote:
> On 12/02/2014 12:51 PM, Eric Anholt wrote:
>> Ian Romanick <idr at freedesktop.org> writes:
>>
>>> On 11/26/2014 06:09 PM, Dave Airlie wrote:
>>>> Glamor is 4x faster on my ILK using glsl 130 at core text using
>>>> x11perf -ftext.
>>>>
>>>> Ian started writing a spec for this extension a while back, which seems like
>>>> most of the work, this patch seems to do enough, to advertise GLSL 1.30.
>>>
>>> Yeah... I started writing the extension when Chris Forbes was working on
>>> adding GLSL 1.30 for Ironlake.  I seem to recall that gl_ClipDistance
>>> still does not work for ILK, and difficulties with that caused Chris to
>>> abandon the project.  This was over a year ago, so the details are a bit
>>> fuzzy.
>>>
>>> The common Mesa parts look good, though.  If we want to pursue this, I
>>> can finish up the extension spec and get it published.
>>
>> I'd definitely be interested -- integers are really useful for 2D
>> rendering (as evidenced by Dave's numbers), and I can do them in VC4.
>> What I see in a glance through 1.30 that I don't have in my 2.1
>> implementation is:
>>
>> - Size queries (but I can fake it with uniforms)
>> - Texture arrays (can't fake that without some real craziness).
>> - Texture offsets (could fake with uniforms and some math?)
>> - gl_VertexID (could fake with a cached VBO of integers I think.
>>
>> I'd be interested in whether the MESA_1.30 spec would require support
>> for extensions that expose those things, or if I could expose it without
>> doing all of that.
>
> I think it would be easy to have an interaction with
> GL_ARB_texture_array at least.  I think the easiest thing is:
>
> Interactions with EXT_texture_array and OpenGL 3.0
>
>     If EXT_texture_array or OpenGL 3.0 are not supported, shaders using
>     sampler1DArray, sampler2DArray, isampler1DArray, isampler2DArray,
>     usampler1DArray, usampler2DArray, sampler1DArrayShadow, or
>     sampler2DArrayShadow types or built-in functions related to those
>     types will compile and link.  However, since textures for those
>     targets cannot be created, these shaders will fail draw-time
>     validation checks.
>
> Would that work?  I think we'd need a nearly identical interaction for
> EXT_texture_integer.  There may be other similar cases.

>From a piglit run on ILK,

AMD_shader_trinary_minmax
ARB_draw_elements_base_vertex
ARB_explicit_attrib_location
ARB_explicit_uniform_location
ARB_shader_bit_encoding
ARB_texture_query_levels
ARB_texture_query_lod
ARB_texture_rg
ARB_texture_rgb10_a2ui
EXT_shader_integer_mix
EXT_texture_integer
ARB_separate_shader_objects

all had new tests enabled with my patch.

Eric, gl_VertexID is one thing glamor needs isn't it?

Dave.


More information about the mesa-dev mailing list