Commit Graph

3628 Commits

Author SHA1 Message Date
Branimir Karadžić
c5df1d91e8 Cleanup. (#3669) 2026-04-18 06:11:44 +00:00
Branimir Karadžić
f89839ddb8 Use uint32_t for stream mask instead of uint8_t. (#3668) 2026-04-17 23:51:33 +00:00
Branimir Karadžić
a721b869ea WebGPU: Populate texture format caps from specs. (#3665) 2026-04-17 06:19:03 +00:00
Branimir Karadžić
0b0ddb7f6b Added generate mips on frame buffer resolve. (#3664) 2026-04-17 05:04:57 +00:00
MatthewBeshay
a2d3c83f0d Fix D3D12 fragment shader constant buffer misalignment (#3663)
The fragment shader CBV address was computed as gpuAddress + vsh->m_size,
but D3D12 requires constant buffer view addresses to be 256-byte aligned
(D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT). When the vertex shader
constant buffer exceeds 256 bytes without being a multiple of 256, the
fragment shader reads from a misaligned address, producing corrupt uniform
values.

This causes rendering artifacts or completely black output for any shader
program where the VS constant buffer size is not a multiple of 256 bytes,
since the fragment shader receives incorrect uniform data (e.g. a non-zero
alpha reference threshold that discards all pixels).

The fix aligns the VS constant buffer size to 256 bytes before placing the
FS constants, and uses the aligned offset when computing the FS CBV address
in both the main render loop and the blitter path.
2026-04-15 21:10:01 +00:00
Vincent Bousquet
e9a4f671bc DX12: fix invalid state when creating a BLIT_DST texture without mem block (#3656)
* DX12: fix invalid state when creating a BLIT_DST texture without mem block

* Only set state when it's not external texture.

---------

Co-authored-by: Branimir Karadžić <branimirkaradzic@gmail.com>
2026-04-14 23:28:37 +00:00
Branimir Karadžić
cc109f587b GLES: Fixed D32 RBO format. (#3662) 2026-04-14 03:59:42 +00:00
Branimir Karadžić
f3ad0e91af Removed bgfx::weldVertices. (#3659) 2026-04-13 01:30:57 +00:00
Branimir Karadžić
2e49e0e38a GLES: Fixed ANGLE issues. (#3658) 2026-04-10 04:05:34 +00:00
Vincent Bousquet
173be4d0fa DX12: fix blitting inside a texture 2D array (#3657) 2026-04-09 21:21:17 +00:00
Vincent Bousquet
8a070c8e27 Vulkan: fix missing swapchain image acquire semaphore (#3655) 2026-04-09 21:20:28 +00:00
Branimir Karadžić
48a1f88bcc VK: Lazy transition texture state, instead of bitching about it. (#3653) 2026-04-07 21:03:08 +00:00
Branimir Karadžić
7c0d813b83 Remove unused shader parsers. (#3651)
* Removed shader parsers.

* Removed shader parsers.
2026-04-05 02:54:27 +00:00
Branimir Karadžić
9a1ce9c60b Fixed #3647. (#3648) 2026-03-31 16:34:09 -07:00
Branimir Karadžić
8532b2c45d Fix race between bgfx::begin and bgfx::frame encoder allocation. (#3646)
* Fix race between bgfx::begin and bgfx::frame encoder allocation.

* Update src/bgfx.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-25 21:36:02 -07:00
Jason Millard
9c98438372 metal: isDepth24Stencil8PixelFormatSupported is only available on macOS (#3645) 2026-03-24 23:09:10 +00:00
Matteo Valdina
fd8d480b28 Fix x86 crash: CreateTexture command buffer read uses wrong type (#3643)
The _external parameter is written to the command buffer as uint64_t (8 bytes)
but read back as uintptr_t (4 bytes on 32-bit). This causes a 4-byte
deserialization misalignment on x86, corrupting all subsequent command
buffer reads and leading to EXCEPTION_ACCESS_VIOLATION (0xC0000005) during
D3D11 initialization.

Co-authored-by: Matteo Valdina <mavaldin@microsoft.com>
2026-03-23 16:05:18 +00:00
Branimir Karadžić
3118337be2 VK: Fixed crash when using BGFX_FRAME_FLUSH. (#3640) 2026-03-22 07:09:15 +00:00
Branimir Karadžić
0499759e8c Fixed runtime renderer selection. (#3637) 2026-03-21 16:57:04 +00:00
Branimir Karadžić
42b52a7a51 VK: Fix default non-external texture state. (#3635) 2026-03-21 08:56:41 -07:00
Branimir Karadžić
f26d3b1342 Use render pass creation data for render pass hash. (#3636) 2026-03-21 07:14:13 +00:00
Branimir Karadžić
4e6b6f0264 Metal: Fix validation when instancing data is provided, but shaders doesn't use it. (#3634) 2026-03-21 05:28:35 +00:00
Daniele Bartolini
20a637e3e6 VK: only enable non-opaque compositing if requested (#3630) 2026-03-13 02:47:58 +00:00
Branimir Karadžić
a73c12db8f Added bgfx::AttribType::Int8/Uint16. (#3626) 2026-03-09 06:13:51 +00:00
Branimir Karadžić
608713739b Metal: Switched to metal-cpp. (#3624)
* Metal: Switched to metal-cpp.

* Cleanup.

* Remove more Obj-C code.

* Add metal-cpp license.

* Cleanup.

* Reduce number of leak reports.

* Reducing Obj-C code.

* renderer_mtl.mm -> .cpp

* Cleanup.

* Cleanup.
2026-03-08 23:33:43 +00:00
Branimir Karadžić
b28febb4a8 NonLocalAllocator: Remove orphaned slabs. Fixed #2867. (#3625) 2026-03-08 04:02:40 +00:00
Branimir Karadžić
2721c747ae Added BGFX_FRAME_FLUSH. (#3623) 2026-03-07 04:50:46 +00:00
Branimir Karadžić
ae080bc634 D3D11: Fix SRV for external texture. (#3622) 2026-03-06 23:41:29 +00:00
Branimir Karadžić
298f5b0202 Improved docs on bgfx::begin/end. (#3621) 2026-03-06 05:37:34 +00:00
Gary Hsu
8e68ab9a83 Add null checks for mtl when no swap chain (#3620) 2026-03-05 21:16:53 +00:00
Branimir Karadžić
de17eda241 Improved documentation. Added IDL docs. (#3619) 2026-03-05 06:55:05 +00:00
Бранимир Караџић
b121263362 VK: Fix default texture state. 2026-02-24 07:32:35 -08:00
Бранимир Караџић
33930ac14a VK: Add external texture. 2026-02-23 22:28:11 -08:00
Бранимир Караџић
de0cdd0740 Updated Tint. 2026-02-21 19:54:05 -08:00
Branimir Karadžić
91814c9729 Added flag for texture formats that can be used as back-buffer format. (#3605) 2026-02-22 02:44:26 +00:00
Branimir Karadžić
651c203116 Undo default back buffer format. Fix VK. (#3604) 2026-02-20 03:14:27 +00:00
Branimir Karadžić
856208328c Use back buffer format when capturing screen shot. (#3603) 2026-02-20 00:46:41 +00:00
Branimir Karadžić
4cb794eade VK: Initialize texture flags to 0. (#3602) 2026-02-19 17:47:48 +00:00
Branimir Karadžić
c85fa25266 Added BGFX_FRAME_* flags to add ability to discard all draw calls. (#3599) 2026-02-19 01:42:31 +00:00
Branimir Karadžić
2800f17970 Cleanup. (#3598) 2026-02-18 21:01:18 +00:00
Martijn Courteaux
f3bc108efe Restore Vulkan 1.0 compatibility. (#3597)
* vulkan: Do not hard-depend on Vulkan 1.2 and Vulkan 1.1.

* fix(ub): vector iterators are not the same as taking address of position.

* fix(ub): Mask bit iterator had implicit promotion bug.

* fix(ub): Vulkan backend shouldn't copy fragment shader source if there is none.
2026-02-18 20:12:49 +00:00
Branimir Karadžić
40e614c45d Added external texture parameter. (#3596)
* Added external texture parameter.

* Use uint64_t instead of uintptr_t for external texture because VkImage is always 64-bit.
2026-02-18 20:12:37 +00:00
Quaylyn Rimer
02e04fb458 Optimize NonLocalAllocator: sorted vector + immediate coalescing (#3593)
Replace stl::list (tinystl::vector with O(n) push_front) with a sorted
stl::vector free list that maintains address-order invariant.

Key improvements:
- free(): uses bx::upperBound for O(log n) sorted insertion + immediate
  adjacent-block coalescing instead of O(n) push_front with deferred merge
- compact(): O(1) check (m_used empty?) instead of O(n log n) sort +
  O(n) linear merge pass on every call
- alloc(): first-fit scan over cache-friendly contiguous memory instead
  of pointer-chasing through fragmented list
- add(): sorted insert with coalescing via bx::upperBound, same as free()

Uses bx::upperBound from the bx foundation library for binary search,
no std:: usage. Added operator> to Free struct for bx::compareAscending
compatibility.

The public API and behavioral semantics are unchanged. All existing
callers (dynamic index/vertex buffer allocators, uniform cache store
allocator) continue to work identically.
2026-02-17 19:27:10 +00:00
Martijn Courteaux
611baeb183 Fix iterator (#3590)
* Fix iterator

* Enters.
2026-02-12 18:12:43 +00:00
Branimir Karadžić
4ab38c657a Updated version. (#3587) 2026-02-08 01:46:54 +00:00
Branimir Karadžić
90d61887ac D3D11: Renamed dx11 to dxbc. (#3586) 2026-02-08 01:45:18 +00:00
Branimir Karadžić
011ede6b42 shaderc: HLSL/DXBC needs unorm float image load/store. (#3576) 2026-02-03 00:39:35 +00:00
Branimir Karadžić
4942e65bf9 shaderc: select (u)int variants are just for higher versions of GLSL. (#3575) 2026-02-02 22:32:11 +00:00
Branimir Karadžić
6f169c1fde shaderc: Add select. (#3572) 2026-01-31 04:28:40 +00:00
Daniele Bartolini
601111d505 Do not load RenderDoc on Wayland (#3570)
* Do not load RenderDoc on Wayland

* Update debug_renderdoc.cpp

---------

Co-authored-by: Branimir Karadžić <branimirkaradzic@gmail.com>
2026-01-31 00:56:29 +00:00