Git Product home page Git Product logo

Comments (6)

EvilTrev avatar EvilTrev commented on June 16, 2024

The fix appears to be in shaderc.cpp, where the logic to append precision should exist much further down

from bgfx.

bkaradzic avatar bkaradzic commented on June 16, 2024

Provide shader source that has this issue.

from bgfx.

EvilTrev avatar EvilTrev commented on June 16, 2024

Any shader that uses dFdx or dFdy, for example you could try adding something like this to one of the shaders:

float textureMipLevel( sampler2D tex, vec2 uv )
{
	// Estimate using OpenGL spec: http://www.opengl.org/registry/doc/glspec42.core.20120427.pdf
	vec2 texel = vec2( textureSize( tex, 0 ).xy ) * uv;
	vec2 dx_vtc = dFdx( texel );
	vec2 dy_vtc = dFdy( texel );
	float delta_max_sqr = max( dot( dx_vtc, dx_vtc ), dot( dy_vtc, dy_vtc ) );
	return 0.5 * log2( delta_max_sqr );
}

But there isn't much need, the issue starts at line 2373 of shaderc.cpp, where precision is injected before many other extensions. The same problems would occur with GL_EXT_shader_texture_lod, GL_OES_texture_3D and so on.

from bgfx.

bkaradzic avatar bkaradzic commented on June 16, 2024

See example 42-bunny...

Type make TARGET=4 rebuild, and there is no issue.

from bgfx.

EvilTrev avatar EvilTrev commented on June 16, 2024

Did you use target profile 310_es or 320_es? It won’t occur for 100_es due to the logic surrounding precision injection in shaderc.cpp

from bgfx.

EvilTrev avatar EvilTrev commented on June 16, 2024

Target 4 will build glsl, for android gles it is:

make TARGET=3

And the parameter to shaderc would need to be -p 300_es, so in my makefile I have something like:

ifeq ($(TARGET), 3)
VS_FLAGS=--platform android -p 300_es
FS_FLAGS=--platform android -p 300_es
CS_FLAGS=--platform android -p 300_es
SHADER_PATH=shaders/essl

Which should be fine since the default for BGFX_CONFIG_RENDERER_OPENGLES_MIN_VERSION is 30.

from bgfx.

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.