Giter Club home page Giter Club logo

Comments (3)

afd avatar afd commented on September 27, 2024

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.

asuonpaa avatar asuonpaa commented on September 27, 2024

work.tar.gz

This time I hit the same issue with the option that keeps the work dir.

from graphicsfuzz.

afd avatar afd commented on September 27, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.