Giter VIP home page Giter VIP logo

Comments (4)

rdb avatar rdb commented on May 14, 2024

Have you tested this with 1.10? I continue to be unable to reproduce this issue.

from panda3d.

Epihaius avatar Epihaius commented on May 14, 2024

Just tried it on another, newer machine, with a very recent Panda3D version (8a35f36 from 2017-10-18) and yes, it definitely still happens. If anything, the frequency with which the results vary seems to have increased; it now gives a wrong result like 1 time out of 2, while it only went wrong 1 time out of 5 or so with older Panda versions, IIRC.

Here is a short video I recorded to show exactly what happens.

Since I get the same results on three different machines (1 laptop and 2 desktops), it seems doubtful that it has anything to do with a specific graphics card (although they are all NVIDIA), but perhaps you want the output when I set "gl-debug true" and "notify-level-glgsg debug" in Config.prc, just in case?
Here is already the last part of it, just after loading the textures, therefore perhaps the most relevant part:

:display:gsg:glgsg(debug): loading uncompressed texture rockwall_diffuse
:display:gsg:glgsg(debug): loading new texture object for rockwall_diffuse, 1024 x 1024 x 1, z = 0, mipmaps 1, uses_mipmaps = 0
:display:gsg:glgsg(debug): Buffer detailed info: Buffer object 1 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
:display:gsg:glgsg(debug): Buffer detailed info: Buffer object 2 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
:display:gsg:glgsg(debug): loading uncompressed texture Brick_105
:display:gsg:glgsg(debug): loading new texture object for Brick_105, 1024 x 1024 x 1, z = 0, mipmaps 1, uses_mipmaps = 0
:display:gsg:glgsg(debug): Buffer detailed info: Buffer object 3 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
:display:gsg:glgsg(debug): Buffer detailed info: Buffer object 4 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
:display:gsg:glgsg(debug): GLGraphicsStateGuardian 0000000003D4FE00 destructing

The above output is always the same, regardless of the result.

Perhaps there is something wrong with the way the .bam file itself is created, so I attached it below, including the textures used:
model_hierarchy.zip

The newest machine I tested this on runs Windows 10 64-bit and has an NVIDIA GeForce GTX 750 Ti graphics card.

from panda3d.

rdb avatar rdb commented on May 14, 2024

I managed to reproduce it at last. The issue is that the compose mechanism relies on the states being sorted by pointer, but loading it from .bam removes the guarantee that the state pointers are sorted (since the texture stages are loaded in no particular order). All that's needed is one line to sort the pointers. :)

Thanks for the test case and reporting this issue!

from panda3d.

Epihaius avatar Epihaius commented on May 14, 2024

Great news! Thank you for fixing this!

from panda3d.

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.