Commit Graph
3864 Commits
Author SHA1 Message Date
Thomas Clegg 9304c09edc Metal: Fixed blit encoder released without endEncoding on shutdown. (#4005)
Resource updates (texture/buffer updates, texture zero-init) open a blit
encoder that is ended in submit. When updates are pending at shutdown,
RendererShutdownBegin clears m_rendererInitialized, submit is skipped, and
renderFrame's autorelease pool frees the still-open encoder, which Metal
API validation reports as 'Command encoder released without endEncoding'.

Retain the blit encoder while it's open, and end encoding before the final
command buffer kick in shutdown.
2026-09-30 10:04:53 -07:00
Branimir Karadžić b743ef8f7e D3D1x: Report device loss from a failed readback Map. (#4004) 2026-09-29 17:08:20 +00:00
Branimir Karadžić 968e4f8dd9 Added explicit texture mip count, and per-binding sampler LOD clamp. (#4002) 2026-09-28 22:00:14 -07:00
Branimir Karadžić ce3bee65f2 D3D1x/WebGPU: Survive device loss in the readback paths. (#4001) 2026-09-28 19:56:23 -07:00
James Green d8b2a448aa D3D11: Fixed the DXGI_SWAP_EFFECT_DISCARD fallback swap chain. (#3997)
The retry kept DXGI_SCALING_NONE, and createSwapChain/resizeBuffers
added DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING for every swap effect; both
are flip-model only, so the fallback failed with DXGI_ERROR_INVALID_CALL
and a bitblt chain could not be resized.
2026-09-25 15:35:15 -07:00
Branimir Karadžić c00cc181cc Metal: Allow metal binary. (#3996) 2026-09-24 22:20:22 -07:00
vrimar ae6bc904d5 WGPU: Fixed 32-bit build, viewFormatCount narrowing since #3959. (#3995) 2026-09-23 21:17:38 -07:00
Branimir Karadžić 81d81fba72 GL: Fixed timer query stall without a swap. WGPU: Reset read-only depth/stencil for swap chains. Fixed occlusion query result on handle reuse. (#3993) 2026-09-19 21:59:40 +00:00
Sam e693f8f72d GL: fix data-less compressed texture arrays and stale m_immutableStorage on handle reuse (#3992) 2026-09-19 12:41:29 -07:00
Branimir Karadžić 42f028887c D3D11: Skipped MSAA resolve of integer formats. WGPU: Fixed uninitialized frame buffer size, and read-only depth/stencil pipeline state. (#3991) 2026-09-19 05:42:34 +00:00
Branimir Karadžić fd070e679f D3D12: Fixed depth-stencil plane states. (#3990) 2026-09-18 19:16:27 -07:00
Branimir Karadžić 1fb47dca7a VK/WGPU: drain a view's blits and uniform cache before its dispatches. VK: block on the swapchain image of window framebuffers on a headless device (#3989) 2026-09-18 13:41:57 +00:00
Branimir Karadžić 1512f4d961 WebGL: EAC texture formats have no sRGB variant. (#3988) 2026-09-17 21:23:01 -07:00
U U U d6890aa5c2 WebGL: Enabled EAC texture formats via WEBGL_compressed_texture_etc extension. (#3980)
EACR11/EACR11S/EACRG11/EACRG11S fell through to the default case, so on
WebGL the extension was never enabled and EAC textures silently failed
to load. Follow-up to #3487.
2026-09-17 21:07:22 -07:00
Branimir Karadžić ca8e4528a2 GL: Fixed main back buffer sRGB state with MSAA. (#3987) 2026-09-17 21:04:27 -07:00
vrimar 3ca5a63428 Recreate the main swap chain when only its flags change on reset. (#3986)
Context::reset moves the per-surface flags (MSAA, sRGB, HiDPI) off the reset flags onto SwapChain::flags, but every backend's updateResolution gate still compared only the stripped reset flags, so a runtime MSAA change was dropped.
(cherry picked from commit 1ffb270f91a63403c069fcf652bd2411d962b437)
2026-09-18 01:05:41 +00:00
Branimir Karadžić 5777fe1f66 D3D11/12/WGPU: Retried refused swap chain resize. D3D12/MTL/VK/WGPU: Fatal on failed pipeline creation. (#3985) 2026-09-17 14:14:56 +00:00
Branimir Karadžić b380f0ee73 Fixed explicit swap chains in a headless init: MTL screenshots, MTL/VK/WGPU window list compaction, MTL/WGPU user depth pipeline format. (#3984) 2026-09-17 02:26:46 +00:00
Branimir Karadžić 6e6c062e1f Closed the gaps between the GLSL and HLSL halves of bgfx_shader.sh. (#3983) 2026-09-16 04:30:06 +00:00
Branimir Karadžić ee7f9f66e2 Fixed EGL headless bootstrap. D3D12: fixed explicit swap chain MSAA state. GL: Cleared and blitted texture slices. (#3981) 2026-09-15 05:56:24 +00:00
Branimir Karadžić bd85653546 Added cube array samplers. (#3979) 2026-09-14 00:54:40 +00:00
Branimir Karadžić dd38b306c8 VK: Fixed image layout tracking for read-only depth/stencil attachments. (#3978) 2026-09-13 09:49:40 -07:00
Branimir Karadžić 9499caafb0 Optimized bind state hashing, and matrix cache reservation. (#3977) 2026-09-13 06:22:34 +00:00
Branimir Karadžić 8ee74e8260 Optimized encoder bind state, and uniform updates. (#3976) 2026-09-12 22:43:02 +00:00
Branimir Karadžić 7e8bb589f1 Added setUniformRef, BGFX_TEXTURE_SRGB_MUTABLE, and byte-range compute buffer bindings. (#3974) 2026-09-12 06:49:53 +00:00
Branimir Karadžić 5e4943cd0e D3D12: Fixed swap chain resource release during reset and shutdown. (#3973) 2026-09-12 05:53:05 +00:00
Branimir Karadžić 90f0995f8e Rebuilt shaders. (#3972) 2026-09-10 23:39:39 -07:00
Branimir Karadžić 2e51cb6aa9 Added depth control, sample mask, and read-only depth/stencil attachments. (#3971) 2026-09-11 05:22:53 +00:00
Branimir Karadžić 9b636df330 GL: Don't toggle primitive restart on WebGL. Fixes #3967. (#3969) 2026-09-07 20:58:25 +00:00
Branimir Karadžić 6fb33c492b Metal: Fixed externaly created device release. (#3966) 2026-09-06 10:42:02 -07:00
Branimir Karadžić 7293e6f75b D3D11, D3D12: swap chain, clear and subresource state fixes. GL: debug group must be pushed and popped on the same context. (#3965) 2026-09-06 00:49:55 +00:00
Branimir Karadžić 8c8b6b5692 Raised renderer baseline, and removed caps every backend now supports. (#3962) 2026-09-05 05:24:56 +00:00
Branimir Karadžić f3d4ad0df0 Metal: Fixed 3D texture blit. (#3960) 2026-09-04 18:45:26 -07:00
Branimir Karadžić 01dbbbc08c Added swap-chain. (#3959) 2026-09-05 01:44:33 +00:00
Бранимир Караџић 1ac4eb3cdd WebGPU: Fixed compressed texture update bounds, and pipeline cache key. 2026-09-03 05:26:33 +00:00
Бранимир Караџић 49d0c38c0c D3D12: Fixed 3D UAV mip depth range. 2026-09-03 03:33:25 +00:00
Бранимир Караџић 5a2eec3246 Fixed matrix cache growth strategy. Fixes #3952. 2026-09-02 16:48:04 +00:00
Бранимир Караџић 67edbbd72a D3D12: Device removed extended data. 2026-09-02 05:51:25 +00:00
Бранимир Караџић 8dbdcf411a ChunkedScratchBufferT: grow the ring where the write head is. 2026-09-02 03:12:42 +00:00
Бранимир Караџић 340ef142c3 Enable primitive restart for strip topologies. 2026-09-01 23:47:00 +00:00
Бранимир Караџић 2963e09d6b DXGI: Use IDXGISwapChain2 to set frame latency. 2026-09-01 00:45:17 +00:00
Nolram a4af1f49dc Re-capitalised "nVidia" to "NVIDIA" where applicable. A minor change, but it aids consistency and is now in-line with NVIDIA's own naming policy. You're welcome Jensen. (#3945) 2026-08-31 01:17:29 +00:00
Branimir Karadžić 3fab221b95 Use bx::hasUniqueObjectRepresentation to detect undesired padding. (#3943) 2026-08-30 18:38:21 +00:00
Branimir Karadžić a7c3e28ae0 Fixed RenderBind hash collision on unoccupied bindings. (#3942) 2026-08-30 17:41:36 +00:00
Branimir Karadžić 5929f9826c VK: Fixed 3D to 2D blit, and compressed texture update region exceeding mip extent. (#3939) 2026-08-30 05:59:25 +00:00
Branimir Karadžić c949b911fc Reduce default footprint: optional debug text, drop unused shader copies. (#3938) 2026-08-29 22:32:32 -07:00
Moţ 4b4c138fb0 vulkan: use BC1_RGBA formats so TextureFormat::BC1 keeps its 1-bit alpha (#3937)
VK_FORMAT_BC1_RGB_UNORM_BLOCK has no alpha component, so sampling a BC1
texture on Vulkan always returns a = 1.0 and the 1-bit punch-through
alpha of the source data is silently discarded.

This contradicts bgfx's own definition of the format - bgfx.h documents
TextureFormat::BC1 as "5-bit R, 6-bit G, 5-bit B, 1-bit A" - and it
disagrees with every other backend:

  D3D11/D3D12  DXGI_FORMAT_BC1_UNORM
  OpenGL       GL_COMPRESSED_RGBA_S3TC_DXT1_EXT

all of which decode the punch-through alpha. There is no separate BC1A
format in bgfx, so the RGB variant is not an intentional distinction.

Switching to the RGBA variants costs nothing in terms of support: if
textureCompressionBC is available, the specification requires all of
BC1-BC7 with the same feature set, so VK_FORMAT_BC1_RGBA_UNORM_BLOCK is
available wherever VK_FORMAT_BC1_RGB_UNORM_BLOCK is. Fully opaque BC1
blocks decode identically under both.
2026-08-29 09:06:54 -07:00
Branimir Karadžić 7d81d2874b Submit optimization: skip unused views, hash only occupied bind slots, index reserved FrameArenaT directly. (#3936) 2026-08-28 23:37:13 +00:00
Branimir Karadžić f73862c579 D3D12: Fixed texture readback resource state. Disabled refcount asserts for external device. (#3935) 2026-08-27 19:27:48 +00:00
Branimir Karadžić a81591b15f EGL, WGL: Fixed caller-provided context handling. (#3934) 2026-08-27 18:12:48 +00:00