Comments (3)
Thanks for the report! Are you able to provide the working directory for the reduction? This should have loads and loads of JSON files and .frag files - one for each reduction step.
With what you've provided I can see the end result of reduction, but not the log of what happened, and it's that log that would shed light on when the infinite loop arrived.
from graphicsfuzz.
This time I hit the same issue with the option that keeps the work dir.
from graphicsfuzz.
Ah, command.log, in the reduction working dir, says:
06:22:55.556 INFO ReductionDriver - The shader is not interesting when global loop limiters are added; these will not be used during reduction, so the final reduced shader could contain long-running or infinite loops.
When moving on to a semantics-changing reduction (reduction 2), glsl-reduce tries to add global loop limiters. If this preserves interestingness of the shader (in your case, it still hits the coverage point) then after every simplification glsl-reduce makes it re-adds global loop limiters, so that the reducer can reduce aggressively and not worry about introducing infinite loops. But if adding global loop limiters in the first place doesn't work (e.g., adding them leads to the bug or coverage point disappearing) then it makes do without them.
This doesn't mean that the bug/coverage point requires an infinite loop, as the original shader probably didn't have an infinite loop. It just means that adding the specific code shape associated with a loop limiter makes the bug/coverage point disappear.
Perhaps we should get gfauto to look for this log message and use it to provide some indication that this happened, before deleting the reduction work dir - what do you think?
from graphicsfuzz.
Related Issues (20)
- Support more sampler types than just sampler2D
- gfauto doesn't handle an integer with the minimum possible value properly HOT 1
- gfauto: add support for different framebuffer sizes HOT 3
- Unreleased Resource: Streams HOT 1
- Unused Field HOT 2
- Variable Never Used HOT 3
- Unreleased Resource: Sockets
- How to confirm the golden image for reference shader? HOT 8
- gfauto reduction not semantically same
- Use dynamic descriptor offsets
- gfauto / glsl-reduce: Exit more informatively when a ParseTimeoutException occurs HOT 2
- Add multi-dimensional array support to the parser and the printer
- Adding Method call (array.length()) support
- Adding memory qualifiers support for buffers / shader storage blocks
- Add ShaderTrap back-end to gfauto
- Reducer: eliminate un-referenced interface blocks
- DonateCodeTransformation might move injectionSwitch up above the precision declaration, causing shader to fail validation
- glsl-reduce enhancement: based on perses HOT 2
- There is no problem with testing the Qualcomm chip, whether the mtk chip is compatible
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphicsfuzz.