On 04/18/2014 08:46 AM, Kenneth Graunke wrote: > On 04/18/2014 12:09 AM, Ilia Mirkin wrote: >> Hi Ken, >> >> I just did a bisect looking for the failure that's causing a few >> gs-related piglits to fail on nv50, and it came up with the below. Any >> ideas? Here are the tests that are failing: >> >> tests/spec/glsl-1.50/execution/geometry/clip-distance-out-values.shader_test >> tests/spec/glsl-1.50/execution/geometry/max-input-components.shader_test >> tests/spec/glsl-1.50/execution/geometry/point-size-out.shader_test >> tests/spec/glsl-1.50/execution/geometry/primitive-id-out.shader_test >> tests/spec/glsl-1.50/execution/gs-redeclares-both-pervertex-blocks.shader_test >> tests/spec/glsl-1.50/execution/interface-vs-named-to-gs-array.shader_test >> tests/spec/glsl-1.50/execution/redeclare-pervertex-out-subset-gs.shader_test >> tests/spec/glsl-1.50/execution/redeclare-pervertex-subset-vs-to-gs.shader_test >> >> 1afe3359258a9e89b62c8638761f52d78f6d1cbc is the first bad commit >> commit 1afe3359258a9e89b62c8638761f52d78f6d1cbc >> Author: Kenneth Graunke <kenn...@whitecape.org> >> Date: Thu Mar 20 11:53:16 2014 -0700 >> >> mesa: In core profile, refuse to draw unless a VAO is bound. >> >> Core profile requires a non-default VAO to be bound. Currently, calls >> to glVertexAttribPointer raise INVALID_OPERATION unless a VAO is bound, >> and we never actually get any vertex data set. Trying to draw without >> any vertex data can only cause problems. In i965, it causes a crash. >> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76400 >> Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> >> Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> >> Cc: mesa-sta...@lists.freedesktop.org >> >> Reverting this commit on top of master makes it work again. I have no >> idea whether it's the tests/piglit infra that are wrong, or if it's >> the commit that's wrong, but wanted to raise the issue. This still >> happens with the (almost-)latest piglit (latest doesn't compile due to >> EGL stuff...) >> >> Let me know if you'd like any additional info. >> >> Thanks, >> >> -ilia > > Yeah, we're seeing those too. I believe the commit is wrong: with > geometry shaders, you can just generate vertices using a GS program and > not actually ever upload any vertex data. At which point, you probably > don't need a VAO. I haven't double checked the rules, though.
You don't even need a GS to draw without vertex data. You just need a vertex shader that uses gl_VertexID. I was going to raise an issue about this patch last week, but I was too distracted by the Khronos meetings. :( > Feel free to revert it. > > I also wonder whether we should drop the non-default-VAO requirement. > ES 3.0 doesn't require it, so I wonder if ARB_ES3_compatibility implies > we should drop it from API_OPENGL_CORE as well. If not, it still might > be worth creating an always-on GL extension that provides the default > VAO again. We get quite a few bug reports about people's apps not > working because they were trying to use the default VAO (which > apparently nVidia allows). Implementers are explicitly NOT allowed to have extensions the re-instate deprecated / removed functionality. ARB_ES[23]_compatibility also doesn't bring back vertex data in user memory, so I don't see use the default VAO should come back. I don't remember all the rules... I know you can't draw without a VAO, but can you even bind BOs, configure attributes, etc. on the default VAO? Do we generate clear error messages in the right places? > --Ken > _______________________________________________ > mesa-stable mailing list > mesa-sta...@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-stable _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev