swung0x48
6162603072
[Feature, Fix, Test] (GLState, GLImpl, DirectVulkan, DirectGLES): implement glTextureView over shared texture storage
2026-08-22 10:41:52 -04:00
swung0x48
d4247db6c3
[Fix, Test] (ShaderTranspiler, GLImpl, ProgramState, DirectVulkan): keep fp64 where the backend consumes it natively
2026-08-22 00:57:06 -04:00
swung0x48
6e2a3b3496
[Fix, Test] (GLState): stop enumerating buffer variables as GL uniforms
2026-08-21 11:55:29 -04:00
swung0x48
f5a0779385
[Fix, Test] (GLState): keep the atomic-counter and storage blocks out of the GL uniform-block list
2026-08-21 11:54:45 -04:00
swung0x48
fdbe0b3117
[Fix, Test] (DirectGLES, DirectVulkan, GLImpl, GLState): ask the last link, not the live attach list, what stages a program has
2026-08-21 08:01:48 -04:00
swung0x48
b32c35a113
[Fix, Test] (GLImpl): ask the stage, not GL_NONE, whether a geometry shader is active
2026-08-21 06:20:54 -04:00
swung0x48
4b41f01b68
[Merge] (DirectGLES, GLState, ShaderTranspiler): land GL43 wave5 with its two new passes inside the L2 boundary
2026-08-21 00:43:39 -04:00
swung0x48
e81e938bb8
[Docs] (GLImpl): name the right copy_image conformance case in the 1D-array bounds note
2026-08-21 00:28:22 -04:00
swung0x48
aed10f65a6
[Fix, Test] (GLImpl, MG_IntegrationTest): enforce the tessellation draw-mode rules and waive the XFB mode match for it
2026-08-21 00:23:15 -04:00
swung0x48
ef66aea73b
[Fix, Test] (GLImpl, DirectGLES, DirectVulkan): address a 1D array's copy-image layers on Z, not Y
2026-08-21 00:15:01 -04:00
swung0x48
7a7340ebe2
[Fix, Test] (GLImpl, ProgramState): answer the classic uniform queries for atomic counters at GL level
2026-08-21 00:07:07 -04:00
swung0x48
7aa91e8024
[Fix, Test] (DirectGLES, DirectVulkan): narrow GL_DOUBLE vertex arrays to float32 instead of dropping them
2026-08-20 23:54:49 -04:00
swung0x48
ae0373eb48
[Merge] (DirectGLES, ShaderTranspiler): land GL43 wave4 with the interface-block rename inside the L2 boundary
2026-08-20 21:13:55 -04:00
swung0x48
a8228ca287
[Merge] (ShaderTranspiler, GLState, DirectGLES): land dev GL43 wave2/wave3 under the translation cache
2026-08-20 18:03:06 -04:00
swung0x48
dc1fffb041
[Fix, Test] (GLImpl): bound glCopyImageSubData's region against both images
2026-08-20 16:02:08 -04:00
swung0x48
d24d5b5ccd
[Fix, Test] (BackendLoader, DirectGLES, DirectVulkan, GLImpl): answer the layer and viewport-index provoking-vertex conventions from the backend
2026-08-20 15:40:25 -04:00
swung0x48
51883cf1a3
[Fix, Test] (GLState): deliver the GL_MIN_MAP_BUFFER_ALIGNMENT that glGetIntegerv advertises
2026-08-20 15:35:02 -04:00
swung0x48
9bde0e500f
[Merge] (CTS): land the GL43 wave-3 fixes and the DirectVulkan texture-shape repairs
2026-08-20 14:17:20 -04:00
swung0x48
02c9b8a32d
[Fix, Test] (GLImpl, DirectVulkan, MG_IntegrationTest): record glVertexAttribLFormat's state and drop the array at draw
2026-08-20 13:44:44 -04:00
swung0x48
26f02567d7
[Fix, Test] (GLState, GLImpl): reserve an inactive uniform's explicit location and pin the link to GL_MAX_UNIFORM_LOCATIONS
2026-08-20 13:39:38 -04:00
swung0x48
a3dbe234d7
[Fix, Test] (GLImpl, MG_IntegrationTest): answer glGetTexLevelParameter for buffer textures instead of erroring
2026-08-20 13:27:50 -04:00
swung0x48
a991f63899
[Fix] (GLImpl): answer the per-stage GL_MAX_*_SHADER_STORAGE_BLOCKS queries from the backend instead of a fixed 16
2026-08-20 13:16:29 -04:00
swung0x48
1740a8a41a
[Feat, Test] (GLImpl, GLState): implement glBeginConditionalRender and discard the commands GL 4.6 10.9 names
2026-08-20 12:59:22 -04:00
swung0x48
cb155c5b94
[Fix, Test] (GLImpl, ShaderTranspiler): reconcile the compute work-group limits glGetIntegeri_v and glslang advertise
2026-08-20 12:41:01 -04:00
swung0x48
fa2e15c27e
[Fix, Test] (GLImpl): answer GL_IMAGE_FORMAT_COMPATIBILITY_TYPE from glGetTexParameterfv
2026-08-20 11:56:24 -04:00
Swung0x48
14744f117c
[Refactor] (ProgramInterface): build the program-resource model from the reflection snapshot, retiring GetReflection
2026-08-20 11:47:57 -04:00
Swung0x48
8329ab4264
[Refactor] (ProgramState): answer the GL query surface from an owned reflection snapshot, not the live TProgram
2026-08-20 11:43:42 -04:00
swung0x48
ee98c453ed
[Fix, Test] (GLImpl): enforce GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS on the bind and indexed-query paths
2026-08-20 11:39:28 -04:00
swung0x48
a9fb7ef0af
[Fix, Test] (GLImpl, GLState): answer GL_ACTIVE_ATOMIC_COUNTER_BUFFERS and implement glGetActiveAtomicCounterBufferiv
2026-08-20 11:23:33 -04:00
swung0x48
6159166d38
[Fix, Test] (GLImpl, ShaderTranspiler): reconcile the atomic-counter limits glGetIntegerv and glslang advertise
2026-08-20 11:20:21 -04:00
swung0x48
042c61fb75
[Fix, Test] (TextureUtil, GLImpl): accept GL_STENCIL_INDEX as a stencil-only texture internal format
2026-08-20 10:49:57 -04:00
swung0x48
a8bebe1a3c
[Fix, Test] (GLImpl, GLState): refuse a compressed texture in glClearTexImage/glClearTexSubImage
2026-08-20 10:44:52 -04:00
swung0x48
afebf38e90
[Fix, Test] (GLImpl): require only the requested level to exist in glGetTexImage
2026-08-20 10:38:29 -04:00
swung0x48
b1774e80be
[Fix, Test] (GLImpl): make copy-image completeness mipmap-aware per GL 4.6 core 8.17
2026-08-20 10:20:34 -04:00
swung0x48
a9b4c47fea
[Fix, Test] (GLImpl): record the specific compressed internalformat in TexImage3D and TexStorage3D
2026-08-20 10:17:55 -04:00
swung0x48
52718ecf84
[Fix, Test] (GLImpl, DirectGLES, DirectVulkan): accept GL_RENDERBUFFER endpoints in glCopyImageSubData
2026-08-20 10:11:38 -04:00
swung0x48
7940a09491
[Fix, Test] (GLImpl, MG_Test): validate glBlitFramebuffer's mask bits, filter enum and LINEAR depth rule
2026-08-20 05:14:11 -04:00
swung0x48
1e8d4661e6
[Fix, Test] (GLImpl, MG_Test): raise a draw's mode INVALID_ENUM before the no-current-program guard
2026-08-20 05:10:38 -04:00
swung0x48
916702629e
[Fix, Test] (GLImpl, MG_Test): validate glFenceSync's condition/flags and glWaitSync's flags/timeout
2026-08-20 05:08:11 -04:00
swung0x48
085eb5835b
[Fix, Test] (GLImpl, MG_State, DirectGLES, MG_Test): separate the transform feedback query counters and prefer the exact CPU count on DirectGLES
2026-08-20 04:58:54 -04:00
swung0x48
f17cb23ea3
[Fix, Test] (GLImpl, DirectGLES): deallocate zero-sized multisample images instead of defining them
2026-08-20 04:15:46 -04:00
swung0x48
f297af7d2b
[Fix] (GLImpl, DirectGLES, DirectVulkan): floor every advertised sample cap and clamp the realised count in the backends
2026-08-20 04:10:45 -04:00
swung0x48
6aed3b08f3
[Fix] (DirectVulkan, GLImpl, MG_State, ShaderTranspiler): second audit round over the remaining memo sites
...
Six more verified defects from the residual memo/cache mechanisms:
- Program resource cache (DirectVulkan reflection): glShaderStorageBlockBinding
deliberately does not bump the backend state version, and the SSO pipeline
composite is unnamed so the by-name in-place patch can never reach its slot -
the composite kept serving pre-rebind SSBO bindings. The cache now keys on the
program's block-binding version; a binding-only change re-applies the overrides
by name instead of re-running spirv-reflect. SetShaderStorageBlockBinding also
gains the equality bail-out its uniform-block sibling has, so the composite
mirror's replay stops churning the version every draw.
- LinkProgram's allowVSOnlyPrograms function-static latch never set its own
initialized flag (dead memo, re-read every call) - and completing it would have
frozen a per-backend capability across re-initialization. Replaced with a fresh
per-link read from the null-checked active backend.
- Query object registry: drained at full library teardown (DestroyAllQueryObjects,
mirroring DestroyAllSyncObjects) - undeleted queries and their backend wrappers
leaked across Destroy/Initialize cycles, stale ids stayed IsQuery == GL_TRUE in
the re-initialized library, and a later delete could hand the old backend's
wrapper to a different backend's DeleteBackendQuery.
- Converted vertex streams and the host-side EBO max-index scan now SyncGpuWrites
before reading the coherent mapping: XFB/SSBO/image writes are merely recorded
at that point, so the conversion read pre-write bytes (the restart-index
rewrite already synced; these two host reads did not).
- Zero-stride converted bindings: both converters rejected stride 0, making the
factory's documented single-element conversion unreachable and silently
dropping every draw using such a binding; the stride is substituted with the
element size for the one-element case.
- DemoteFloat64Pass block relayout: measurement queued into the module eagerly,
so a mid-struct failure left a half-relaid-out block (compacted offsets before
the failing member, 64-bit offsets after) while claiming the block was left
alone. Decoration writes are now collected and committed only when the whole
block measures successfully.
2026-08-19 16:41:28 -04:00
swung0x48
b3794f4e6a
[Feat] (MG_Impl, MG_State, MG_Util, DirectGLES, DirectVulkan, MG_Test): implement ARB_clear_buffer_object correctly
2026-08-16 01:12:28 -04:00
swung0x48
5fbb17f6b9
[Feat, Fix, Test] (MG_State, MG_Impl, MG_Backend, MG_Test): give ARB_viewport_array real 16-element indexed state instead of eight stubs and a viewport-0 echo
2026-08-13 04:44:23 -04:00
Swung0x48
9642ae4d20
[Fix, Test] (MG_Impl/Texture, MG_Backend, MG_Test): copy_image compatibility is texel-block size, and neither backend was told which slice to copy
2026-08-13 03:17:27 -04:00
swung0x48
f37b511fca
[Fix, Test] (MG_Impl/GLImpl, MG_Backend/DirectVulkan, MG_Backend/DirectGLES, MG_Test, MG_IntegrationTest): a glCopyImageSubData to a mipmap level the texture never had is INVALID_VALUE, not a subresource handed to the driver
2026-08-13 02:28:55 -04:00
Swung0x48
dd2a62228f
[Fix, Feat, Test] (MG_Util, MG_Backend, MG_Impl, MG_State): correct the log severity ordering and unwind the diagnostics it silenced
2026-08-13 02:02:49 -04:00
swung0x48
6b6623ae72
[Fix, Test] (MG_Backend, MG_Impl, MG_State): advertise the uniform-block and stencil-texturing strings a 4.0 context hides behind, forward DEPTH_STENCIL_TEXTURE_MODE to both backends, and stop a reserved transform feedback name passing for an object
2026-08-12 15:12:01 -04:00
swung0x48
1b05a84928
[Fix, Test] (MG_State, MG_Backend, MG_Impl, MG_Test): review wave - hand the mapping back instead of renewing it, retire an immutable ES store on respecify, and tag glTexStorage2D levels too
2026-08-12 10:32:39 -04:00