Skip to content

About FBO and getProgramInfoLog delay. #3435

Answered by CodyJasonBennett
state303 asked this question in Q&A
Discussion options

You must be logged in to vote

gl.getProgramInfoLog comes from shader compilation, which is blocking as program linking and validation waits on shaders to compile. This is done serially in three.js, so all (unique permutations of) materials will compile in lockstep. Same story with any other GPU resource, like (geometry) vertex buffers or textures which are uploaded from the CPU. WebGLRenderer.compileAsync would help in the case of many meshes or unique programs, but not in the case of a single material or blocking resource. Precompiling shaders or preloading textures helps when there is already parallel work to begin with, but strictly introduces latency otherwise. Further, compressed texture formats like KTX2 or imag…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@state303
Comment options

Answer selected by state303
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants
Converted from issue

This discussion was converted from issue #3434 on January 20, 2025 08:07.