Summary: | [r300g, bisected] Around 50 piglit vs variable-indexing tests fails after "glsl_to_tgsi: allocate arrays separately v2" | ||
---|---|---|---|
Product: | Mesa | Reporter: | Pavel Ondračka <pavel.ondracka> |
Component: | Drivers/Gallium/r300 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | ckoenig.leichtzumerken |
Version: | git | Keywords: | regression |
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
RADEON_DEBUG=fp,vp output with latest mesa master
RADEON_DEBUG=fp,vp output before Possible fix RADEON_DEBUG=fp,vp from vs-uniform-array-mat2-col-row-rd test Alternative fix. |
Description
Pavel Ondračka
2013-03-24 13:36:24 UTC
Created attachment 76963 [details]
RADEON_DEBUG=fp,vp output before
Created attachment 76967 [details] [review] Possible fix Please try the attached patch. Created attachment 76971 [details] RADEON_DEBUG=fp,vp from vs-uniform-array-mat2-col-row-rd test (In reply to comment #2) > Created attachment 76967 [details] [review] [review] > Possible fix > > Please try the attached patch. Yes, your patch fixes the vs-temp-array-mat* tests and vs-varying-array-mat* tests. Still failing are some vs-uniform-array-mat* tests. I'm attaching output from one of those... (In reply to comment #2) > Created attachment 76967 [details] [review] [review] > Possible fix > > Please try the attached patch. I thought the array support was backward compatible. If if were true, this patch wouldn't be needed, right? (In reply to comment #4) > I thought the array support was backward compatible. If if were true, this > patch wouldn't be needed, right? Yes indeed, and I find that rather strange, too. Well one thing that I haven't considered before is that when a target doesn't support indirect addressing all indirect accesses are replaced with a chain of "if (i == 0) then return x[0] else if (i == 1) then return x[1].....", so having arrays separated makes this inefficient code even more inefficient (cause the register scavenger then leaves arrays alone), that's what this patch really should fix. But you're right, it should NEVER result in incorrect code, so we either have a bug in R300g that's triggered by using more registers than necessary (unlikely), or we are still missing something in the glsl_to_tgsi pass (likely). @Pavel: Could you make sure that the vs-uniform-array-mat2-col-row-rd test is indeed failing with that change? And also please attach a log of the good case for this test. Thanks in advance, Christian. Created attachment 76987 [details]
Alternative fix.
Ok, I think I've figured out what's going wrong here.
Could you test the attached patch? It's an alternative version of the previous patch (and should NOT be applied on top).
Thanks,
Christian.
(In reply to comment #6) > Created attachment 76987 [details] > Alternative fix. > > Ok, I think I've figured out what's going wrong here. > > Could you test the attached patch? It's an alternative version of the > previous patch (and should NOT be applied on top). > > Thanks, > Christian. Yes, the latest patch fixes all regressed tests here. Also no new regressions with quick piglit tests. |
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.