Bug 108759

Summary: Incorrect simultaneous work of GL_ARB_indirect_parameters and GL_NV_conditional_render.
Product: Mesa Reporter: Illia Iorin <illia.iorin>
Component: Drivers/DRI/i965Assignee: Intel 3D Bugs Mailing List <intel-3d-bugs>
Status: RESOLVED MOVED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: idr, illia.iorin
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Illia Iorin 2018-11-15 14:21:27 UTC
In mailing thread   “[Mesa-dev] Implementation of VK_KHR_draw_indirect_count extension for anv” Jason Ekstrand mentioned that  the simultaneous use  of these extensions could cause incorrect  work on i965.  And he is right. Now implementation of ARB_indirect_parameters doesn’t consider situation when predicate is already used by conditional rendering and should be taken into account.
Comment 1 Illia Iorin 2018-11-15 14:30:48 UTC
Piglit test can found  here: https://patchwork.freedesktop.org/patch/262127/
Comment 2 Illia Iorin 2018-11-15 15:02:44 UTC
I’ve fixed this case by using additional registers and mi math.   The source of inspiration was Danylo’s implementation of VK_KHR_draw_indirect_count extension. This fix has to work on hsw+, but I exactly know  it works correctly on kbl.
https://patchwork.freedesktop.org/patch/262137/
Comment 3 Ian Romanick 2019-04-17 01:41:20 UTC
(In reply to Illia Iorin from comment #1)
> Piglit test can found  here: https://patchwork.freedesktop.org/patch/262127/

I lost most of my mail box, so I don't have this patch to reply to.  I have two pieces of feedback.

1. The test requires OpenGL 3.2, so it should use glBeginConditionalRender instead of glBeginConditionalRenderNV.  Drop the requirement for the NV extension.  Conditional rendering was made part of the GL spec in 3.0.  It should also mention "conditional rendering" in the description instead of GL_NV_conditional_render.  I think I gave similar feedback earlier today on the Mesa MR.

2. The test uses atomic counters, but it does not check that extension.  I doubt any driver will ever support GL_ARB_indirect_parameters and not GL_ARB_shader_atomic_counters, but still. :)
Comment 4 GitLab Migration User 2019-09-25 19:15:12 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1771.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.