Commit Graph

7840 Commits

Author SHA1 Message Date
Branimir Karadžić
24f047b078 Fixed VS warnings. 2021-06-06 14:51:39 -07:00
kingscallop
e65d185ed6
Fix DebugDraw shaders compilation (#2362)
* Fix DebugDraw shaders compilation

Pull request #2317 broke compilation of the DebugDraw shaders (vs_debugdraw_fill.sc, etc)
on the Intel mesa driver. Shaders with a version lower than 130 have no
support for uvec or ivec by default on OpenGL.

This patch detects when these shaders are present and bumps the version when appropriate.

* Removed the ivecs from the patch
It seems the ivecs are infact supported on versions lower than 130 on
OpenGL.
2021-06-06 14:05:14 -07:00
kingscallop
73784ac9eb
Split embedded shaders into essl and glsl - Part 1 (#2535)
In non-embedded shaders there is a separation between essl binaries (examples/runtime/shaders/essl)
and glsl binaries (examples/runtime/shaders/glsl). On embedded shaders there is no such separation
and by default essl shaders are being used by the OpenGL runtime. This usually doesn't cause any
issues but in the case of the debugdraw shaders, that started using uvec4, this now leads to a
runtime error. This patch fixes this by splitting the embedded shaders into essl and glsl.

As asked, this is the first part of the change.

To be able to compile the 'examples/common/debugdraw' shaders, pull
request #2362 is needed.
2021-06-06 13:53:26 -07:00
kingscallop
6440d669a8
Add missing examples in makefile (#2534) 2021-06-05 13:56:29 -07:00
kingscallop
6a529fca4b
Fix usage of bx::findIdentifierMatch for gl_FragDepth (#2533)
When trying to find all the instances of gl_FragDepth
and replace them with bgfx_FragDepth it only finds
the first instance.
2021-06-05 13:56:00 -07:00
kingscallop
1ab27e277b
Fix hardcoded bgfx dir from include paths in makefiles (#2532)
Only these four makefiles had these hardcoded paths.
All other makefiles don't specify the bgfx dir name.
2021-06-05 13:55:19 -07:00
kingscallop
8247e061f0
Fixes texturev embedded shaders compilation (#2531)
Compiling 'fs_texture_array.sc' with shaderc for OpenGLES fails with a syntax error,
because the matrix transpose function definitions occur before extension directives,
in this case EXT_texture_array.
2021-06-05 13:54:38 -07:00
Бранимир Караџић
ed645ff01a Bounds: Moved pass-thru funcs into .inl header. 2021-06-05 10:29:59 -07:00
Бранимир Караџић
b8dc216fa0 Cleanup. 2021-06-05 07:56:20 -07:00
simon chen
0b179e59e2
fixed GLES3 bug, when "EGL_KHR_create_context" doesn't exist. (#2529)
* fixed gles3 bug

* fixed sdl bug on android platform
2021-06-05 07:54:14 -07:00
Бранимир Караџић
5db742a7b0 Fixed GLES3 build. 2021-06-03 21:28:10 -07:00
Бранимир Караџић
ce807e7899
Updated README. 2021-06-03 14:27:15 -07:00
Mirko-Salm
c5dcd4ea9b
fixed missing brackets in ddy, ddy_coarse, and ddy_fine (#2525) 2021-05-31 08:59:41 -07:00
Бранимир Караџић
6788f87687 Updated spirv-tools. 2021-05-28 20:17:33 -07:00
Бранимир Караџић
7cd0944343 Updated spirv-headers. 2021-05-28 20:17:24 -07:00
Бранимир Караџић
f0b68fd9d4 Updated spirv-cross. 2021-05-28 20:17:12 -07:00
Бранимир Караџић
4ada836d3d Updated meshoptimizer. 2021-05-28 20:16:57 -07:00
Бранимир Караџић
923418d740 Updated vulkan headers. 2021-05-28 20:16:47 -07:00
Бранимир Караџић
1f32a216b3 Updated glslang. 2021-05-28 20:16:37 -07:00
Бранимир Караџић
a4279df6c9 Updated ImGui. 2021-05-28 20:16:28 -07:00
Бранимир Караџић
7c4b654d3d Updated cgltf. 2021-05-28 20:16:17 -07:00
Бранимир Караџић
08e3d51a9e Fixed docs. 2021-05-25 20:13:59 -07:00
Бранимир Караџић
6baa370801 Fixed transient index buffer functions to all have 32-bit indices support, and removed 16-bit only restriction from docs. 2021-05-25 12:47:28 -07:00
Бранимир Караџић
5ecddbf4d5 Updated version number. 2021-05-19 09:53:54 -07:00
Бранимир Караџић
e642efb03a Updated bindings. 2021-05-19 09:53:34 -07:00
Branimir Karadžić
c5aea5325d Fixed MSVC build. 2021-05-19 07:03:02 -07:00
Бранимир Караџић
d53cd6bc42 Merge branch 'master' of github.com:bkaradzic/bgfx 2021-05-18 22:42:06 -07:00
Бранимир Караџић
a47a1c8917 Fixed WebGL instancing and EGL context upgrade. 2021-05-18 22:41:51 -07:00
Branimir Karadžić
daa4f9d627 Updated shaders. 2021-05-18 20:36:03 -07:00
Бранимир Караџић
3214539bad Fixing WebGL + Android instancing. 2021-05-18 20:22:46 -07:00
Бранимир Караџић
6ca5060ce8 Updated spirv-cross. 2021-05-14 19:37:10 -07:00
Бранимир Караџић
22bb919338 Updated spirv-tools. 2021-05-14 19:37:02 -07:00
Бранимир Караџић
1a551d8b9f Updated spirv-headers. 2021-05-14 19:36:46 -07:00
Бранимир Караџић
5d7814c334 Updated glslang. 2021-05-14 19:35:38 -07:00
Бранимир Караџић
e532aba391 Updated vulkan headers. 2021-05-14 19:31:53 -07:00
Бранимир Караџић
3b87b65d18 Updated cgltf. 2021-05-14 19:29:23 -07:00
Бранимир Караџић
5c1d99cb8c Fixed build. 2021-05-13 20:31:20 -07:00
Бранимир Караџић
9d8e73f1c1 Fixed warnings. 2021-05-13 12:48:27 -07:00
Бранимир Караџић
9cd7cbb877 Updated ImGui. 2021-05-08 08:02:39 -07:00
Бранимир Караџић
c42a3a5d4d Cleanup. 2021-05-08 07:29:50 -07:00
Daniel Collin
c9bf791eaa
Fixed multiview issues with dear imgui (#2511)
When using the multview / docking feature of dear imgui (availible on the main repo in the docking branch) dear imgui will use desktop relative coordinates instead of window relative. This causing the rendering to get "offseted" if not handled correctly.
Before this change the rendering matrix wasn't used at all and this has now been changed in the vertex shader.

Notice this change is fully backwards compatible with the relative windows as well as the upper left corner will always be set to 0,0 in that case thus this change will work with both versions.

I also added some changes to skip rendering if not needed (based on the the other backend implementations for dear imgui such as the OpenGL one)
2021-05-08 07:26:06 -07:00
Бранимир Караџић
41ab81fd51 Cleanup. 2021-05-06 10:59:28 -07:00
Sebastian Marketsmueller
582dfc1e4c
Fix texture validation logic (#2509)
* fix mip level computation for asmjs and add support for srgb textures in es2/webgl

* fix BX_TRACE in glcontext_html5.cpp

* fix wrong logic in texture validation

Co-authored-by: Sebastian Marketsmueller <sebastianm@hq.unity3d.com>
Co-authored-by: Vladimir Vukicevic <vladimir@pobox.com>
2021-05-06 10:58:37 -07:00
pezcode
97c4abef01
GLES: fix compilation (#2508) 2021-05-05 14:24:35 -07:00
pezcode
2c21f68998
VPRT support for D3D11, D3D12, GL (#2507)
* glsl-optimizer: whitelist ARB_shader_viewport_layer_array_enable

* D3D11: remove duplicate structs and enums

* D3D11: report BGFX_CAPS_VIEWPORT_LAYER_ARRAY

* D3D12: report BGFX_CAPS_VIEWPORT_LAYER_ARRAY

* GL: support for BGFX_CAPS_VIEWPORT_LAYER_ARRAY

* D3D11: multi-layer MSAA resolve

* D3D12: multi-layer MSAA resolve

* D3D12: fix binding multi-layer resolved textures

* GL: fix multi-layer rendertarget creation
2021-05-05 11:58:21 -07:00
pezcode
56fbe55b3d
Vulkan: occlusion queries, housekeeping - attempt 2 (#2506)
* Cleanup

* Request host-cached memory for readback

* Request device-visible memory for the uniform buffer

* Use more fine-grained image memory barrier stages

* Don't rebind vertex and index buffers if not necessary

* Timer queries

* Don't transition images during a renderpass

* Cache descriptor sets

* Trigger RenderDoc capture if requested

* Fix invalid command buffer after surface recreation

* Perform clear and blit before compute

* Use init.debug to enable validation layers

...instead of always enabling them in debug config

* Only resolve framebuffer once

* Report number of primitives without index buffer

* Minimize state changes

* Occlusion queries

* Transition swapchain image from undefined layout

* Make sure we have a combined graphics and compute queue family

Existing code already makes that assumption, otherwise we'd need different command queues and explicit resource queue transitions. The spec also guarantees that a device with such a queue family should exist.

* Release cached image views on texture destruction

* Fix stencil-only clear

* Fix non-zero integer format clear

* Annotate all optional functions with their extensions

* Support for BGFX_SAMPLER_SAMPLE_STENCIL

* Remove unused extension functions

* Support for BGFX_SAMPLER_BORDER_COLOR

* Undo descriptor set cache

Try this again in another PR... the hashing doesn't quite work with some bind combinations, and the cache needs a better eviction strategy

* Don't start renderpass for empty draw calls

* Advertize graphics debugger, if present

ie. RenderDoc

* Cleanup

* Only enable required features and extensions

* Don't spam warning about swapchain format fallback

* Cleanup
2021-05-03 10:17:43 -07:00
Бранимир Караџић
9528c5d68a Revert "Vulkan: occlusion queries, housekeeping (#2505)"
This reverts commit 2fb67a707b.
2021-05-02 20:15:16 -07:00
pezcode
2fb67a707b
Vulkan: occlusion queries, housekeeping (#2505)
* Cleanup

* Request host-cached memory for readback

* Request device-visible memory for the uniform buffer

* Use more fine-grained image memory barrier stages

* Don't rebind vertex and index buffers if not necessary

* Timer queries

* Don't transition images during a renderpass

* Cache descriptor sets

* Trigger RenderDoc capture if requested

* Fix invalid command buffer after surface recreation

* Perform clear and blit before compute

* Use init.debug to enable validation layers

...instead of always enabling them in debug config

* Only resolve framebuffer once

* Report number of primitives without index buffer

* Minimize state changes

* Occlusion queries

* Transition swapchain image from undefined layout

* Make sure we have a combined graphics and compute queue family

Existing code already makes that assumption, otherwise we'd need different command queues and explicit resource queue transitions. The spec also guarantees that a device with such a queue family should exist.

* Release cached image views on texture destruction

* Fix stencil-only clear

* Fix non-zero integer format clear

* Annotate all optional functions with their extensions

* Support for BGFX_SAMPLER_SAMPLE_STENCIL

* Remove unused extension functions

* Support for BGFX_SAMPLER_BORDER_COLOR

* Undo descriptor set cache

Try this again in another PR... the hashing doesn't quite work with some bind combinations, and the cache needs a better eviction strategy

* Don't start renderpass for empty draw calls

* Advertize graphics debugger, if present

ie. RenderDoc

* Cleanup

* Only enable required features and extensions

* Don't spam warning about swapchain format fallback

* Cleanup
2021-05-02 20:09:33 -07:00
Бранимир Караџић
84fcbcd240 Fixed makefile. 2021-04-30 17:46:34 -07:00
James Fulop
43db77159d
fix unintialized memory (#2499)
this then caused `DX_RELEASE(m_msaaRt, 0);` in `error:` to fire an assert since it tries to deref the garbage ptr
2021-04-29 17:46:24 -07:00