Commit Graph

  • a687873d32 [Fix] (DirectGLES): probe format capabilities on the target ES stores them on BZLZHH 2026-08-02 04:18:20 -04:00
  • 43a43c1180 [Fix] (DirectGLES, MG_Util): raw framebuffer writes while GL_FRAMEBUFFER_SRGB is off BZLZHH 2026-08-02 04:10:13 -04:00
  • 65dbfa6f26 [Fix] (DirectGLES, MG_Util): widen three-channel formats for multisample textures BZLZHH 2026-08-02 04:10:01 -04:00
  • 6de38c666c [Feat] (DirectGLES): support rectangle textures where the emulation is exact BZLZHH 2026-08-02 01:56:22 -04:00
  • 9dff24f3e1 [Fix] (DirectGLES): never leave a stale program bound when the new one is broken BZLZHH 2026-08-02 01:40:53 -04:00
  • 5a400e0297 Merge branch 'dev' of github.com:MobileGL-Dev/MobileGL into dev BZLZHH 2026-08-02 12:21:25 +08:00
  • b6a2bf08d4 [Fix] (DirectGLES): resolve an aliased texture unit by the sampler's type BZLZHH 2026-08-01 16:21:28 -04:00
  • 6b2a2b5e00 [Fix] (MG_Util): emulate GL_DEPTH_COMPONENT32 with the 24-bit sized format BZLZHH 2026-08-01 14:59:19 -04:00
  • 512c857f18 [Fix] (DirectGLES): emulate a format-converting multisample resolve blit BZLZHH 2026-08-01 14:37:58 -04:00
  • 9f3cac6691 [Fix] (DirectGLES): report distinct depth/stencil framebuffers as unsupported BZLZHH 2026-08-01 14:05:28 -04:00
  • 4c7332d5e6 [Fix] (DirectGLES): broadcast legacy gl_FragColor to every draw buffer BZLZHH 2026-08-01 13:59:11 -04:00
  • 1c5f6c0986 [Chore] (tools/cts): pick a run config the suite does not contradict BZLZHH 2026-08-01 13:48:58 -04:00
  • 8b75628dec [Fix] (DirectGLES): depth/stencil clear value and readback gaps BZLZHH 2026-08-01 13:24:30 -04:00
  • 8269a1786f [Feat] (DirectGLES): emulate GL_TEXTURE_LOD_BIAS in the transpiled ESSL BZLZHH 2026-08-01 13:24:12 -04:00
  • 3019c68945 [Fix] (MG_Util): glBindBufferBase must not freeze the buffer's size BZLZHH 2026-08-01 12:30:46 -04:00
  • 800142c104 [Fix] (DirectGLES): stop the default texture clobbering an aliased real binding BZLZHH 2026-08-01 12:07:23 -04:00
  • e9382f5329 [Fix] (DirectGLES): exact transform feedback primitive queries BZLZHH 2026-08-01 11:57:18 -04:00
  • df7d1edeca [Feat] (DirectGLES): implement transform feedback capture BZLZHH 2026-08-01 11:51:19 -04:00
  • 8025745fa3 [Chore] (Version): bump version to 26.8 for android plugin BZLZHH 2026-08-01 23:46:58 +08:00
  • 4a533a215a [Chore] (MG_Backend): fix compiling error. BZLZHH 2026-08-01 23:21:35 +08:00
  • 0a5d7ceb6c [Feat] (DirectGLES): implement GL_ANY_SAMPLES_PASSED occlusion queries BZLZHH 2026-08-01 11:20:38 -04:00
  • ac81185968 [Fix] (DirectGLES): implement GL_DEPTH_STENCIL readback for ReadPixels/GetTexImage BZLZHH 2026-08-01 11:14:33 -04:00
  • 9e861f3f7a [Test] (tools/cts): extend the fbo-harness waiver to the Espryt renderer BZLZHH 2026-08-01 10:48:11 -04:00
  • da6f75dbd1 [Fix] (DirectGLES): cap advertised GL_MAX_SAMPLE_MASK_WORDS to 1 BZLZHH 2026-08-01 09:59:26 -04:00
  • 951da362f7 [Fix] (submodules): point include/FastSTL at the fork's already-pushed fix BZLZHH 2026-08-01 09:25:01 -04:00
  • 4c929b9b3f Merge branch 'dev' of github.com:MobileGL-Dev/MobileGL into dev BZLZHH 2026-08-01 21:03:14 +08:00
  • 8d5072543a [Test] (tools/cts): waive api.coverage's fbo-surface-type wrapper-FBO artifact BZLZHH 2026-08-01 08:53:35 -04:00
  • 5de2b9e3e9 [Chore] (Version): bump version to 26.8 BZLZHH 2026-08-01 20:35:31 +08:00
  • 9192d156d1 [Fix] (DirectVulkan): ReadPixels materializes pending clears before resolving the blit binding BZLZHH 2026-08-01 08:09:49 -04:00
  • 27cdfbc0ca [Fix] (DirectVulkan): advertise GL_ARB_explicit_attrib_location unconditionally BZLZHH 2026-08-01 08:09:35 -04:00
  • 4567c3b468 [Fix] (DirectVulkan): advertise GL_ARB_texture_multisample unconditionally BZLZHH 2026-08-01 08:09:20 -04:00
  • d18c6a1bae [Fix] (DirectVulkan): Xlib surface fallback for ICDs without VK_EXT_headless_surface BZLZHH 2026-08-01 06:38:30 -04:00
  • dd745d7547 [Fix] (MG_State, MG_Impl): GL-order capture for geometry triangle strips BZLZHH 2026-08-01 03:17:30 -04:00
  • 4407be89cd [Fix] (MG_Impl): count multisample texture attachments in GL_SAMPLE_BUFFERS BZLZHH 2026-08-01 02:50:29 -04:00
  • 0c1a433af6 [Fix] (DirectVulkan): multisample resolve blits; per-buffer blit skip; RGBA-widened renderbuffers BZLZHH 2026-08-01 02:46:16 -04:00
  • a2f3efe22c [Feat] (DirectVulkan): combined and scissored blits; cross-format depth-stencil blits BZLZHH 2026-08-01 02:19:07 -04:00
  • b9a15aed61 [Feat] (DirectVulkan, MG_Impl): GPU transform feedback primitive queries BZLZHH 2026-08-01 02:02:35 -04:00
  • f748a06632 [Fix] (3rdparty): glslang evaluates defined() expanded from macros BZLZHH 2026-08-01 01:54:48 -04:00
  • 4532cae175 [Feat] (MG_Impl, MG_Util): STENCIL_INDEX8 renderbuffers; report distinct D/S renderbuffers unsupported BZLZHH 2026-08-01 01:50:34 -04:00
  • 107b56d603 [Feat] (DirectVulkan, MG_Impl): occlusion queries via Vulkan query pools BZLZHH 2026-08-01 01:50:34 -04:00
  • 22b749dd37 [Fix] (MG_Util, DirectVulkan): canonical depth shadows with upload conversion BZLZHH 2026-08-01 01:15:58 -04:00
  • f0c0211767 [Fix] (DirectVulkan): raw sRGB attachment writes while FRAMEBUFFER_SRGB is off BZLZHH 2026-08-01 01:15:57 -04:00
  • 9ebbb76df1 [Fix] (DirectVulkan): clamp fixed-point ReadPixels to [0,1] BZLZHH 2026-08-01 01:15:57 -04:00
  • 95547ab9ce [Fix] (MG_Util): map GL adjacency primitives to their Vulkan topologies BZLZHH 2026-08-01 00:30:01 -04:00
  • 8eaf2d0069 [Fix] (MG_Impl): create sampler objects at Gen; guard combined-format CopyTexImage BZLZHH 2026-08-01 00:27:05 -04:00
  • 54a8609c64 [Feat] (DirectVulkan): depth-stencil GetTexImage BZLZHH 2026-07-31 18:45:52 -04:00
  • 1fb0eb0737 [Fix] (MG_Util): GL_FLOAT_32_UNSIGNED_INT_24_8_REV is 8 bytes per pixel BZLZHH 2026-07-31 18:43:30 -04:00
  • 282dd69230 [Feat] (DirectVulkan, MG_Impl): depth-stencil ReadPixels and combined-attachment queries BZLZHH 2026-07-31 18:41:08 -04:00
  • e6ebe7078d [Fix] (MG_Util, MG_State): reject reserved GLSL identifiers glslang accepts BZLZHH 2026-07-31 18:27:11 -04:00
  • 30a91023f6 [Chore] (tools/cts): pin local runner surface size to 256x256 BZLZHH 2026-07-31 18:21:28 -04:00
  • 47dd8cdc05 [Feat] (MG_Impl): answer format-derived framebuffer attachment queries BZLZHH 2026-07-31 18:21:28 -04:00
  • 8b36a15fb3 [Fix] (DirectVulkan): repair VK_VERIFY varargs and soften image-creation OOM BZLZHH 2026-07-31 18:21:28 -04:00
  • 07fa84fb8d [Fix] (MG_State, MG_Impl): defer deletion of the program in use BZLZHH 2026-07-31 18:21:14 -04:00
  • a03817b4ee [Fix] (FastSTL): bump submodule for erase(iterator) out-of-bounds fix BZLZHH 2026-07-31 18:21:05 -04:00
  • 641bc0cdd9 [Feat] (MG_Impl): transform feedback primitive queries BZLZHH 2026-07-31 17:40:42 -04:00
  • c069890ac7 [Feat] (DirectVulkan): GPU transform feedback capture via VK_EXT_transform_feedback BZLZHH 2026-07-31 17:31:41 -04:00
  • 48dd1c5956 [Feat] (MG_State, MG_Impl): transform feedback state, validation and reflection BZLZHH 2026-07-31 17:08:37 -04:00
  • a389477f78 [Fix] (MG_Impl): report INVALID_OPERATION for shader names in program APIs BZLZHH 2026-07-31 16:47:45 -04:00
  • 94a8f1e3f3 [Fix] (ShaderTranspiler): keep declared modern GLSL versions strict BZLZHH 2026-07-31 16:43:27 -04:00
  • 45d506545e [Fix] (MG_Util, DirectVulkan): tolerate storage-less attachments in component-size queries BZLZHH 2026-07-31 16:35:03 -04:00
  • d9d63c9496 [Fix] (MG_Impl): answer ARB_transform_feedback3 limit queries BZLZHH 2026-07-31 16:25:46 -04:00
  • 92140405c1 [Feat] (DirectVulkan): emulate GL_LINE_LOOP with closed indexed line strips BZLZHH 2026-07-31 16:25:46 -04:00
  • b9ecfef0b6 [Fix] (DirectVulkan): handle renderbuffer attachments in color blit clears BZLZHH 2026-07-31 16:15:50 -04:00
  • fba26ea169 [Fix] (DirectVulkan): round renderbuffer MSAA requests to supported counts BZLZHH 2026-07-31 16:15:50 -04:00
  • 93a3b55907 [Feat] (DirectVulkan): upload combined depth-stencil texture data BZLZHH 2026-07-31 16:15:50 -04:00
  • d1487bedf0 [Fix] (DirectVulkan): address array layers in mip upload copies BZLZHH 2026-07-31 16:01:41 -04:00
  • 1bb736c57e [Fix] (ShaderTranspiler): keep arrays-of-arrays illegal below GLSL 430 BZLZHH 2026-07-31 15:51:40 -04:00
  • eb76686c1e [Fix] (DirectVulkan): stop replaying consumed renderbuffer clears mid-pass BZLZHH 2026-07-31 15:51:40 -04:00
  • 1a04fb8c0c [Fix] (DirectVulkan): support client-memory indices in DrawElements BZLZHH 2026-07-31 15:10:01 -04:00
  • 306790ee7c [Feat] (tools/cts): add crash-resuming local-host glcts runner BZLZHH 2026-07-31 14:52:38 -04:00
  • 170ccda3e7 [Feat] (tools/cts): port dEQP MobileGL platform to desktop Linux BZLZHH 2026-07-31 14:50:18 -04:00
  • e86a9bbec5 [Chore] (MG_Backend): restore target GL version to 3.3 BZLZHH 2026-07-31 16:45:19 +08:00
  • c5569e71b3 [Feat] (tools/cts): automate Windows WGL conformance runs swung0x48 2026-07-30 22:59:45 -04:00
  • 7e8c32a063 [Feat] (MG_Backend, MG_Impl): expose experimental GL 4.6 CTS limits swung0x48 2026-07-30 22:59:28 -04:00
  • 77bd03d962 [Chore]: remove unnecessary doc swung0x48 2026-07-30 21:56:17 -04:00
  • 37111ae992 [Perf] (DirectVulkan): snapshot-gated consecutive-draw fast path skips SetupDraw re-resolution swung0x48 2026-07-30 09:40:54 -04:00
  • 6b0c2a15ab [Perf] (DirectVulkan): reuse unchanged global-UBO slices and skip identical descriptor binds swung0x48 2026-07-30 08:18:21 -04:00
  • e9ffd99313 [Perf] (DirectVulkan): bake the attribute location mask and memoize the explicit-LOD eligibility probe swung0x48 2026-07-30 08:18:20 -04:00
  • 7c01ddea0c [Perf] (DirectVulkan): drop per-draw weak-ptr locks, re-resolves and rebuilt masks from the sampled-texture and vertex paths swung0x48 2026-07-30 08:01:07 -04:00
  • 2d4d6e9cfb [Perf] (DirectVulkan): skip pending-clear probes through a lock-free empty check swung0x48 2026-07-30 07:02:03 -04:00
  • 76b8957b99 [Perf] (DirectVulkan): memoize sampled-texture resources across draws swung0x48 2026-07-30 07:02:02 -04:00
  • ec685b9fa7 [Perf] (DirectVulkan): memoize resolved vertex-input state on the VAO and dedupe vertex/index binds swung0x48 2026-07-30 07:02:01 -04:00
  • a12068df52 [Perf] (DirectVulkan): reuse pipelines across per-chunk buffers and skip redundant pipeline binds swung0x48 2026-07-30 05:01:46 -04:00
  • 0b344792cc [Fix] (DirectVulkan): stop fence-waiting out-of-band texture uploads; reclaim transients asynchronously swung0x48 2026-07-30 05:01:46 -04:00
  • 9fa32bdad0 [Fix] (DirectVulkan): declare only the used colour attachment span per subpass swung0x48 2026-07-30 02:45:39 -04:00
  • a4980f2b56 [Fix] (DirectVulkan): skip redundant per-draw dynamic-state commands swung0x48 2026-07-30 02:45:07 -04:00
  • 8ca20e28ca [Fix] (DirectVulkan): size texture backings by their defined mip level count swung0x48 2026-07-30 02:43:32 -04:00
  • c353a2055f [Feat] (DirectVulkan): pre-pass command stream for reorderable out-of-pass work swung0x48 2026-07-30 02:43:13 -04:00
  • 421c20984e [Fix] (DirectVulkan): stop loading and carrying dead default-framebuffer content swung0x48 2026-07-30 02:40:47 -04:00
  • 3223ecb14e [Feat] (DirectVulkan): relax fragment precision where the bound formats allow it feat/magma-relaxed-fragment-precision swung0x48 2026-07-29 09:02:00 -04:00
  • fc4cd980f2 [Fix] (DirectVulkan): bound image mutability so Adreno keeps UBWC compression swung0x48 2026-07-29 07:07:50 -04:00
  • 992d16267c [Fix] (DirectVulkan): rewrite implicit-LOD fragment samples to explicit LOD 0 when every bound sampler is pinned to a single mip level - Adreno 650 (driver 512.502) reads outside a full-screen colour render target's allocation on its implicit-LOD sampling path and faults the GPU, which killed MC 26.2 on its own blit shader (texture(InSampler, texCoord)) between frames 344-421 on every run; this is the same driver defect the default-framebuffer blit shader already works around with textureLod, but an application's shader cannot be edited, so ForceExplicitLod0SamplePass converts OpImageSample*ImplicitLod to the explicit form at the SPIR-V level under a new CompileOptionBit that is only requested when the rewrite provably cannot move a texel (every sampler binding on a single-level view, no anisotropy, and either a LOD clamp that already pins lambda at 0 or min and mag filters that agree - an explicit LOD 0 always takes the magnification side of the min/mag decision); a single-level view now also clamps its sampler to mipmapMode NEAREST with maxLod min(maxLod, 0.25) rather than 0, since collapsing the clamp would make every fragment magnify and quietly retire the min filter; and the program's backend hash memo grows from one slot to four so a program resolved under two compile-flag sets in the same frame stops re-hashing every stage's SPIR-V once per draw swung0x48 2026-07-29 03:26:57 -04:00
  • 0ea9e6de5f [Fix] (DirectVulkan): follow surface resizes instead of rebuilding the swapchain on VK_SUBOPTIMAL_KHR - a per-frame surface-capabilities comparison (ANGLE's model) is now the only thing that schedules a rebuild, so a launcher-side resolution change reaches the swapchain and the compositor scales the smaller image up to the view, while a driver that merely reports the surface as suboptimal can no longer rebuild every frame (each rebuild destroys every pipeline, resets the render-pass manager and reallocates the default framebuffer, which showed as flicker, then corruption, then a crash); the comparison runs in SURFACE space against the extent the live swapchain was created from, since comparing against the swapchain's own quarter-turn-swapped extent reports a difference on every rotated frame swung0x48 2026-07-28 21:02:09 -04:00
  • 241ed377b4 [Fix] (macOS): harden Cocoa context setup and isolate embedded glslang swung0x48 2026-07-28 11:54:50 -04:00
  • bf312a4b67 [Fix] (DirectVulkan): explicit-LOD blit sampling and present-path hardening - the default-framebuffer blit shader now samples with textureLod 0 (a blit reads exactly the selected level; Adreno 650's implicit-LOD path reads past a single-mip UBWC render target's allocation despite maxLod=0, page-faulting the GPU on MC 26.2's second startup frame once the neighbouring startup staging memory is returned - the invalidated context then failed the next Present submit with EDEADLK/DEVICE_LOST), TransitionToPresent appends the present barrier into the frame's open recording instead of silently dropping it whenever anything was recorded (frames without a default-FBO render pass presented images stuck in their acquired layout), VK_SUBOPTIMAL_KHR acquires are treated as the success they are (image acquired, semaphore signal armed - the early return skipped the fence reset and consumed-flag clear, and callers re-acquired on the same binary semaphore; rebuilds now defer to after the signal is consumed), and validation builds report through VK_EXT_debug_report when VK_EXT_debug_utils is absent instead of aborting instance creation swung0x48 2026-07-28 06:00:20 -04:00
  • 56b31a9587 [Fix] (FastSTL): bump submodule for the erase(iterator) double-advance fix and add erase-while-iterating regression tests - the old semantics skipped one live element per erase and ran past end() when erasing the highest occupied bucket, sending the new mass pipeline-cache eviction sweeps off the bucket array (device crash on first eviction during world load: garbage handles fed to vkDestroyPipeline) swung0x48 2026-07-27 23:50:25 -04:00
  • 8a0a8a0274 [Fix] (DirectVulkan): harden the leak-fix round after adversarial review - pipeline memo now drops at every command-buffer boundary (a flush-loop-memoized pipeline could age out and be destroyed while its submission was in flight), mid-frame drains no longer rewind the arena or advance the cache-aging clocks in presenting apps (gated to every 8th drain since the last Present, so readback/fence-heavy frames neither churn conversions nor shrink the 1024-boundary retire window), render-pass eviction notifies the pipeline cache once per sweep batch instead of once per dying pass, descriptor pools use FREE_DESCRIPTOR_SET_BIT so a destroyed layout's cached sets are freed back and credited instead of abandoning pool slots (the live-layout age sweep that could orphan slots is removed - layout destruction is the sole purge path), and renderbuffer respecify parks the old backing for aged destruction instead of destroying it while possibly in flight swung0x48 2026-07-27 22:51:26 -04:00
  • d076c29146 [Fix] (DirectVulkan): bound the vertex-input and sampler caches and sweep undeleted GL syncs - both caches age out entries idle >1024 frame boundaries (animated LOD bias no longer mints a VkSampler per float value, buffer/VAO churn no longer grows the vertex-input map for the whole session), and library teardown drains the live-sync registry exactly as glDeleteSync would since GL requires syncs to die with their context swung0x48 2026-07-27 22:16:16 -04:00
  • 930a607bdf [Fix] (DirectVulkan): make texture/renderbuffer GC reach every dead resource - name-deleted textures register via weak_from_this so first-sync-after-delete can no longer orphan a TextureResource, an orphan sweep makes GC authoritative over the resource map, dead-texture pruning moves to a frame-boundary gate (64 frames) so churn through clears/readbacks reclaims without draws, and dead renderbuffers age past frames-in-flight before their VkImage/view is destroyed instead of leaking until shutdown (or being freed while in flight) swung0x48 2026-07-27 22:16:15 -04:00
  • 34685b4bb0 [Fix] (DirectVulkan): age-based eviction for the content-addressed cache family - ProgramFactory entries (shader modules/layouts), PipelineFactory graphics pipelines, compute pipelines and per-layout descriptor-set tracking now retire after ~1024 idle frame boundaries (render-pass-manager sweep precedent), render-pass eviction purges pipelines hashed on the dying handle (closes a handle-recycling stale-pipeline hazard), and the program reflection cache is lifetime-id-keyed and cleared at EGL teardown - shader/program churn no longer grows Vulkan objects without bound swung0x48 2026-07-27 22:05:25 -04:00