[Piglit] [PATCH 04/10] nv_conditional_render: port tests to gles3

Erik Faye-Lund erik.faye-lund at collabora.com
Wed Nov 7 09:18:53 UTC 2018


On Wed, 2018-11-07 at 09:35 +0100, Erik Faye-Lund wrote:
> On Tue, 2018-11-06 at 18:11 -0500, Ilia Mirkin wrote:
> > On Tue, Nov 6, 2018 at 1:38 PM Erik Faye-Lund
> > <erik.faye-lund at collabora.com> wrote:
> > > On Tue, 2018-11-06 at 13:25 -0500, Ilia Mirkin wrote:
> > > > On Tue, Nov 6, 2018 at 1:14 PM Erik Faye-Lund
> > > > <erik.faye-lund at collabora.com> wrote:
> > > > > On Mon, 2018-11-05 at 23:56 -0500, Ilia Mirkin wrote:
> > > > > > On Mon, Nov 5, 2018 at 1:35 PM Erik Faye-Lund
> > > > > > <erik.faye-lund at collabora.com> wrote:
> > > > > > > On Nov 5, 2018 19:20, Ilia Mirkin <imirkin at alum.mit.edu>
> > > > > > > wrote:
> > > > > > > 
> > > > > > > Unless there's something that makes this a pain for ES2,
> > > > > > > I'd
> > > > > > > rather
> > > > > > > these tests were runnable with gl_es_version = 20. You
> > > > > > > can
> > > > > > > test
> > > > > > > with
> > > > > > > MESA_GLES_VERSION_OVERRIDE=20.
> > > > > > > 
> > > > > > > 
> > > > > > > Yeah, I already started on this. There's a few of them
> > > > > > > that
> > > > > > > won't
> > > > > > > work on es2, like the blitframebuffer test etc. I'll send
> > > > > > > an
> > > > > > > updated version soon.
> > > > > > 
> > > > > > It's not necessary to kill yourself making all of these
> > > > > > work
> > > > > > in
> > > > > > ES2.
> > > > > > If they don't work without larger changes, keep them at
> > > > > > ES3.
> > > > > 
> > > > > Yeah, OK. It gets kinda hairy with the ARB_occlusion_query vs
> > > > > GL_EXT_occlusion_query_boolean bits, at least if we want to
> > > > > support
> > > > > both. So yeah, perhaps getting the tests running on gles3 is
> > > > > OK
> > > > > for
> > > > > now?
> > > > 
> > > > Are you saying that for all of them are hairy? Or just some of
> > > > them?
> > > > I
> > > > don't think GLES3 occlusion queries are any more full-featured
> > > > than
> > > > GL_EXT_occlusion_query_boolean allows for...
> > > > 
> > > >   -ilia
> > > 
> > > Kinda all of them.
> > > 
> > > It's about GL_SAMPLES_PASSED vs GL_ANY_SAMPLES_PASSED_EXT and
> > > glGenQueries vs glGenQueriesEXT. Since GL_ANY_SAMPLES_PASSED
> > > isn't
> > > part
> > > of ARB_occlusion_query (only ARB_occlusion_query2 and
> > > GL_EXT_occlusion_query_boolean), either we need some additional
> > > logic
> > > to switch between the enums...
> > 
> > I'm confused though... how does ES3 help? You still need to use
> > ANY_SAMPLES on ES3, no?
> 
> Good question. For some reason, it passes on ES3 for me without, but
> not on ES2. I'll try to figure out why...
> 

get_query_binding_point() in queryobj.c contains this code, which seems
to cause this:

---8<---

   /* From GL_EXT_occlusion_query_boolean spec:
    *
    *    "Accepted by the <target> parameter of BeginQueryEXT,
EndQueryEXT,
    *    and GetQueryivEXT:
    *
    *   ANY_SAMPLES_PASSED_EXT                         0x8C2F
    *   ANY_SAMPLES_PASSED_CONSERVATIVE_EXT            0x8D6A"
    */
   if ((_mesa_is_gles(ctx) && ctx->Version == 20) &&
       (target != GL_ANY_SAMPLES_PASSED &&
        target != GL_ANY_SAMPLES_PASSED_CONSERVATIVE))
      return NULL;

---8<---

It's unclear to me why this check is limited to ES2 like this. I'm
guessing the intention is not prevent
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN here. But it allows
*everything* for ES3, which seems bad.

I'll investigate further and add a patch for this to this series...

> In either case, I think you're right, and I'll need to just bite the
> bullet on that complication.
> 



More information about the Piglit mailing list