Summary: | [llvmpipe] Assertion fail with triangle strips | ||
---|---|---|---|
Product: | Mesa | Reporter: | James Evans <jrevans1> |
Component: | Other | Assignee: | mesa-dev |
Status: | RESOLVED INVALID | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | jfonseca |
Version: | unspecified | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
apitrace of rendered sphere
Screenshot of rendered sphere |
Description
James Evans
2014-10-24 20:27:05 UTC
Do you have a full test program or can you supply an apitrace capture? I suspect there's something wrong with restart index handling though it generally seems to work otherwise (as I side note, I'd advise against using 0xFFFF as a restart index with uint indices since there's hw out there which cannot deal with anything else than ~0 but it shouldn't matter for llvmpipe). Thanks for the tip with '~0' I was unaware of that. I only used '0xffff' because that was what was used in the red book examples. I changed my code to use '~0' and now the latest version of the Mesa drivers (10.3.1) are matching the previous versions of Mesa. I am still seeing alternate triangle strips having their front facing definitions reversed. I will work on getting a free standing compilable code example as soon as I can. In the mean time I am attaching a screen shot and apitrace. Created attachment 108520 [details]
apitrace of rendered sphere
Created attachment 108521 [details]
Screenshot of rendered sphere
(In reply to James Evans from comment #2) > Thanks for the tip with '~0' I was unaware of that. I only used '0xffff' > because that was what was used in the red book examples. I suspect they were using ushort indices (or they just didn't care since it should still work correctly just possibly the driver has to bend over backwards if the hw doesn't support arbitrary index). > I changed my code to use '~0' and now the latest version of the Mesa drivers > (10.3.1) are matching the previous versions of Mesa. > > I am still seeing alternate triangle strips having their front facing > definitions reversed. Hmm ok that would point to two separate bugs then actually... > I will work on getting a free standing compilable code example as soon as I > can. In the mean time I am attaching a screen shot and apitrace. I'll give the apitrace a look. The trace crashes on NVIDIA GL driver. This is because you never call glEnable(PRIMITIVE_RESTART), so the driver interprets the index 0xffffffff literally, causing a buffer overflow. I also add to manually edit the trace and remove trailing \\ from one of the shaders, as NVIDIA GLSL compiler fails otherwise. AFAICS, you're getting undefined behavior because GL state is not being properly set. I am so sorry for bugging you with this. You are absolutely correct. I completely missed the glEnable call. Adding that fixed everything. Thank you. |
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.