[Mesa-dev] [PATCH 0/2] Implement INTEL_fragment_shader_ordering

Jason Ekstrand jason at jlekstrand.net
Tue Aug 28 17:15:10 UTC 2018


On Tue, Aug 28, 2018 at 11:22 AM Manolova, Plamena <
plamena.manolova at intel.com> wrote:

> Hi Mark,
> AFAIK there is no piglit test for this specific extension. However
> underneath the hood it reuses the
> functionality of ARB_fragment_shader_interlock, which has a test. I
> believe the only major difference between
> the two extensions is that unlike beginInvocationInterlockARB, beginFragmentShaderOrderingINTEL
> can
> be called from functions other than main(). If necessary it would be
> pretty straightforward to reuse most of the code
> for the ARB_fragment_shader_interlock test to create one
> for INTEL_fragment_shader_ordering.
>

Having the same underlying compiler intrinsic and having the same behavior
are not the same thing.  The INTEL extension allows strictly more
functionality than the ARB extension so it needs even more testing.  In
particular, it allows you to do the barrier in non-uniform control-flow
which is a very different thing than at the top of a shader like is allowed
by ARB_fragment_shader_interlock.  I expect the INTEL extension to need
substantially more testing than the ARB one.

--Jason



> Thank you,
> Pam
>
> On Tue, Aug 28, 2018 at 6:41 PM Mark Janes <mark.a.janes at intel.com> wrote:
>
>> Is there a piglit test that verifies that this feature works properly?
>>
>> <kevin.rogovin at intel.com> writes:
>>
>> > From: Kevin Rogovin <kevin.rogovin at intel.com>
>> >
>> > INTEL_fragment_shader_ordering provides the ability for shaders
>> > to issue a call to gaurnantee memory write operation ordering
>> > of overlapping pixels or samples. In contrast to
>> > ARB_fragment_shader_interlock, INTEL_fragment_shader_ordering
>> > instead of defining a critical region (which must be in main() and
>> > under no flow control) provides a single function that acts like
>> > a memory barrier that can be called under any control flow.
>> >
>> > Kevin Rogovin (2):
>> >   mesa: Add GL/GLSL plumbing for INTEL_fragment_shader_ordering.
>> >   i965: Add INTEL_fragment_shader_ordering support.
>> >
>> >  docs/relnotes/18.3.0.html                    |  1 +
>> >  src/compiler/glsl/builtin_functions.cpp      | 17 +++++++++++++++++
>> >  src/compiler/glsl/glsl_parser_extras.cpp     |  1 +
>> >  src/compiler/glsl/glsl_parser_extras.h       |  2 ++
>> >  src/compiler/glsl/glsl_to_nir.cpp            |  6 ++++++
>> >  src/compiler/glsl/ir.h                       |  1 +
>> >  src/compiler/nir/nir_intrinsics.py           |  1 +
>> >  src/intel/compiler/brw_fs_nir.cpp            |  1 +
>> >  src/mesa/drivers/dri/i965/intel_extensions.c |  1 +
>> >  src/mesa/main/extensions_table.h             |  1 +
>> >  src/mesa/main/mtypes.h                       |  1 +
>> >  11 files changed, 33 insertions(+)
>> >
>> > --
>> > 2.17.1
>> >
>> > _______________________________________________
>> > mesa-dev mailing list
>> > mesa-dev at lists.freedesktop.org
>> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180828/27e64e69/attachment-0001.html>


More information about the mesa-dev mailing list