Comments (6)
The fix appears to be in shaderc.cpp, where the logic to append precision should exist much further down
from bgfx.
Provide shader source that has this issue.
from bgfx.
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.
See example 42-bunny...
Type make TARGET=4 rebuild
, and there is no issue.
from bgfx.
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.
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)
- BGFX crashing with Directx12 in debug build
- readTexture calls will crash when queued against released textures HOT 1
- Switching rendering back-ends within the same window does not always work correctly HOT 7
- Metal FeatureFamily change is now using incorrect enum values HOT 5
- Examples fail to build on macOS HOT 1
- Feature request: support for embedded shaders in C99 API. HOT 2
- D3D12: Unhandled exception when creating more than 64 samplers HOT 5
- Visual corruption using bgfx-nanovg renderer HOT 4
- Clean macOS build of examplesDebug crashes with [MTLRenderPipelineReflectionInternal vertexBindings] exception HOT 6
- Vulkan renderer crashes after only a couple thousand draw calls. HOT 12
- One test fails HOT 4
- Dynamic vertex buffers getting overwritten after bgfx::update HOT 19
- With GL renderer and wayland, switching to full screen with crtl-f results in nothing (nvidia) or not much (amd) being rendered HOT 2
- Blitting between two textures with BackbufferRatio sizes crashes when window is resized
- xx-splat - 3D Gaussian Splatting for Real-Time Radiance Field Rendering HOT 11
- Vulkan fail to create swapchain on Wayland (Call to a X11 function ?) HOT 9
- Bug: DX3D12 crash in Debug mode HOT 7
- Small fix on soname defining on ldflags for Android examples. HOT 2
- Crash on linux (default backend - vulkan) with custom window handle and native display is NULL HOT 6
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 bgfx.