[Mesa-dev] [Mesa-stable] Regressions due to commit 1afe3359258
Ian Romanick
idr at freedesktop.org
Fri Apr 18 09:39:04 PDT 2014
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 <kenneth at 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 <kenneth at whitecape.org>
>> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
>> Cc: mesa-stable at 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-stable at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-stable
More information about the mesa-dev
mailing list