swung0x48
|
202037b5a3
|
[Fix] (DirectVulkan): shrink the blended depth-write quirk to MIN/MAX extremum blends only - a fixture-wide trace sweep showed the additive ONE+ONE arm never fires on the 26.3 OIT chain (its accumulation passes disable depth writes themselves) and only hit unrelated additive glow content; also fail reflection toward the gl_FragDepth exemption and zero phantom default-FBO blend slots so stale indexed state cannot trigger the strip
|
2026-07-20 23:39:28 -04:00 |
|
swung0x48
|
bce9c48c8e
|
[Feat] (ShaderTranspiler, DirectGLES): support noperspective conformantly instead of stripping it - let the qualifier reach glslang as the core SPIR-V NoPerspective decoration (native on DirectVulkan; SPIRV-Cross emits ESSL noperspective + GL_NV_shader_noperspective_interpolation on DirectGLES), and for GLES devices lacking that extension add StripNoPerspectivePass to drop the decoration and fall back to smooth; the old naked substring erase discarded the interpolation shader packs need and mangled identifiers containing the word
|
2026-07-20 22:59:43 -04:00 |
|
swung0x48
|
b6a7807a3a
|
[Fix] (MG_Util/ShaderTranspiler): reject malformed #version directives instead of legalizing them - an unrecognized version number (329/331), a bad profile keyword, a float or trailing token used to be rewritten to "#version 330 core" (or rescued to 460 by the retry); now InspectShaderLanguage marks such directives invalid so NormalizeVersionDirective and RetargetLegacyVersionDirectiveTo460 leave them for glslang to reject, while every valid version still normalizes as before
|
2026-07-20 22:03:36 -04:00 |
|
swung0x48
|
48ba622387
|
[Fix] (MG_Util/ShaderTranspiler): keep #line directives instead of deleting them, dropping only the GLSL-illegal quoted filename and the ones that precede #version, so __LINE__ and compiler diagnostics follow the application's own numbering
|
2026-07-20 21:06:38 -04:00 |
|
swung0x48
|
05260d1262
|
[Fix] (MG_Util/ShaderTranspiler): blank block comments lexically instead of erasing them - a '//*** banner ***' line opened a comment the old scanner never closed, so it deleted the rest of the shader, and a commented-out builtin definition renamed every genuine call to a name nothing defines
|
2026-07-20 21:06:37 -04:00 |
|
swung0x48
|
6eb5ff51c5
|
[Fix] (MG_Impl/GLImpl): reject the RGTC internal formats on 3D texture targets - RGTC compresses 4x4 blocks of a 2D image and has no 3D form, and the check must run on the raw enum because RGTC now resolves to plain R8/RG8 storage
|
2026-07-20 21:05:57 -04:00 |
|
swung0x48
|
e526f8e8ac
|
[Fix] (MG_Util/Converters): resolve the GL_COMPRESSED_* internal formats to the uncompressed storage that backs them instead of rejecting them as unknown - GL prescribes this base-format fallback for the six generic formats, and RGTC stores uncompressed because ES exposes no compressor
|
2026-07-20 21:05:57 -04:00 |
|
swung0x48
|
e724e88eec
|
[Fix] (MG_State, MG_Impl/GLImpl): allocating a mipmap level no longer truncates the chain above it - AllocateLevel now only grows and the callers that genuinely redefine the whole level set (glTexStorage*, mip regeneration, multisample storage, level-0 respecification) drop the tail explicitly
|
2026-07-20 21:02:54 -04:00 |
|
swung0x48
|
3b175fb88a
|
[Fix] (MG_Impl/GLImpl): a multisample sample count above the format's maximum is INVALID_OPERATION, not INVALID_VALUE - matching both the spec and the native Adreno driver
|
2026-07-20 21:02:53 -04:00 |
|
swung0x48
|
b5a4e7075a
|
[Fix] (MG_Impl/GLImpl): record a GL error from the unimplemented compressed texture entry points instead of throwing - a C++ exception unwinding through the C GL ABI hard-crashes any caller, and glGetCompressedTexImage reported success while writing nothing
|
2026-07-20 21:02:53 -04:00 |
|
swung0x48
|
520c2b6750
|
[Fix] (MG_Backend/DirectGLES): sync GL_TEXTURE_SWIZZLE_* on multisample targets - the early return meant to skip the sampler-only parameters dropped every swizzle write, which the frontend already treats as legal on those targets
|
2026-07-20 21:02:52 -04:00 |
|
swung0x48
|
57cc652b1d
|
[Fix] (MG_Impl/GLImpl): glIsTransformFeedback reports GL_FALSE instead of claiming every name it is handed is a live transform feedback object
|
2026-07-20 21:02:52 -04:00 |
|
swung0x48
|
65ea54da9e
|
[Refactor] (ShaderTranspiler, DirectVulkan): replace the hand-rolled SPIR-V word walkers with a DecoratePositionInvariantPass and SPIRV-Reflect-based InstanceIndex detection
|
2026-07-20 08:35:00 -04:00 |
|
swung0x48
|
c81dd04f08
|
[Test] (CI, trace_replay): force the blended depth-write quirk on the Linux DirectVulkan OIT retrace lane and tighten that case's SSIM threshold to 0.995
|
2026-07-20 07:39:25 -04:00 |
|
swung0x48
|
c158bfa584
|
[Fix] (DirectVulkan): narrow the blended depth-write quirk to order-independent accumulation blends, exempting sorted-transparency, gl_FragDepth writers and fully masked attachments
|
2026-07-20 07:39:25 -04:00 |
|
swung0x48
|
f9f455144c
|
[Refactor] (MG_Config, DirectVulkan): route the blended depth-write quirk through the FeaturesTable as MOBILEGL_MAGMA_DISABLE_BLENDED_DEPTH_WRITE instead of an ad-hoc getenv
|
2026-07-20 04:37:23 -04:00 |
|
swung0x48
|
64e4840de2
|
[Fix] (DirectVulkan): fall back to immutable images when the mutable probe fails, gate robustBufferAccess behind MOBILEGL_DISABLE_ROBUST_BUFFER_ACCESS, decode R32/RG32/R16-class readback formats, and warn when shaderStorageImage*WithoutFormat is unavailable
|
2026-07-20 02:36:26 -04:00 |
|
swung0x48
|
bf7b5755cc
|
[Refactor] (ShaderTranspiler, MG_Backend, MG_Util): gate the subgroup prefix-scan rewrite behind a generic device-quirk registry with GPU vendor detection and MOBILEGL_QUIRK_SUBGROUP_PREFIX_SCAN override, warn on template mismatch, and block ARB/NV subgroup spellings
|
2026-07-20 02:36:26 -04:00 |
|
swung0x48
|
293f64b3c2
|
[Fix] (MG_Impl, DirectGLES): correct ARB_clear_texture error codes, reject cube maps in CopyTextureSubImage2D, advertise the extension on Espryt, and pin the error contracts with tests
|
2026-07-20 02:36:25 -04:00 |
|
swung0x48
|
f0cc07c937
|
[Perf] (DirectVulkan): bound vertex-stream conversion by the draw's real fetch range, reuse cached prefixes, pin cached source buffers, and stop repacking client arrays for pointer alignment
|
2026-07-20 02:36:25 -04:00 |
|
swung0x48
|
4658536652
|
[Perf] (DirectVulkan): keep the render pass alive for steady-state storage-image draws and skip storage-image collection for programs without them
|
2026-07-20 02:36:24 -04:00 |
|
swung0x48
|
04b4627c65
|
[Fix] (DirectVulkan): pass depth/stencil formats through sampled-view resolution so D24S8/D32FS8 samplers stop dropping draws, and memoize per-binding view-format resolution
|
2026-07-20 02:36:24 -04:00 |
|
swung0x48
|
68e13705c8
|
[Fix] (MG_Backend/DirectVulkan, ShaderTranspiler, MG_Test, TraceReplay): make iterationRP retrace pass on 64-lane Vulkan devices with subgroup-width emulation and format-aware readback
|
2026-07-20 02:36:23 -04:00 |
|
swung0x48
|
e5388c0e7e
|
[Fix] (MG_Backend, MG_Impl, ShaderTranspiler, MG_Test): support iterationRP custom images and storage format reinterpretation
|
2026-07-20 02:35:30 -04:00 |
|
swung0x48
|
8bc4808b1a
|
[Test] (TraceReplay): match the iterationRP fixture name published on the mirror
|
2026-07-19 23:09:29 -04:00 |
|
swung0x48
|
5d8a5387e2
|
[Test] (TraceReplay): try the hit.moe mirror before miawa and Git LFS
|
2026-07-19 22:29:55 -04:00 |
|
swung0x48
|
aa2184e47a
|
[Test] (TraceReplay): register iterationRP in-world fixture (non-CI, fixture files pending LFS)
|
2026-07-19 21:39:06 -04:00 |
|
swung0x48
|
9152a4a4bc
|
[Test] (TraceReplay): enable improved-transparency fixture in CI and drop unneeded coherent_as_flush
|
2026-07-19 07:35:34 -04:00 |
|
swung0x48
|
1963b427db
|
[Refactor] (TraceReplay): reorganize trace skills into uniform packages with bundled scripts
|
2026-07-19 07:00:56 -04:00 |
|
swung0x48
|
f3def150e7
|
[Fix] (DirectVulkan): suppress blended depth writes on Qualcomm and mark gl_Position invariant to fix MC 26.3 OIT cloud flicker
|
2026-07-19 05:47:23 -04:00 |
|
swung0x48
|
fc0688c223
|
[Fix] (CI): stabilize Android retrace jobs
|
2026-07-18 19:52:04 -04:00 |
|
swung0x48
|
626c7f26fd
|
[Test] (CMake, CI): enable top-level testing and label tests (unit/benchmark/integration) so ctest runs from the build root
|
2026-07-18 11:37:56 -04:00 |
|
swung0x48
|
1d947d934b
|
[Feat] (TraceReplay): add RenderDoc Android capture tools
|
2026-07-18 11:25:07 -04:00 |
|
swung0x48
|
4203837648
|
[Feat] (trace-replay): register improved transparency fixture
|
2026-07-18 07:28:55 -04:00 |
|
swung0x48
|
f5cba4c2f1
|
[Docs] (trace-replay): unify Android trace runner docs
|
2026-07-18 07:06:56 -04:00 |
|
swung0x48
|
c2a1db3fcb
|
[Feat] (trace-replay): add improved transparency fixture
|
2026-07-18 05:34:01 -04:00 |
|
swung0x48
|
594916850f
|
[Fix] (MG_State, MG_Backend/DirectVulkan): bump the texture bind generation when a context default texture crosses the undefined<->defined boundary so cached sampled sets re-resolve, and collect the fallback texture into the sampled set so its first use transitions outside the render pass
|
2026-07-17 22:33:31 -04:00 |
|
swung0x48
|
c718d6bad8
|
[Fix] (MG_Test/Backend/DirectVulkan): link the whole MobileGL_s archive on MSVC so dllimport-declared gl*/egl* references resolve against the in-library entry points
|
2026-07-17 21:32:17 -04:00 |
|
swung0x48
|
abfda60ff1
|
[Perf] (MG_Backend/DirectGLES): check the unbind cache before activating the texture unit so the bind-0 sweep stops issuing redundant glActiveTexture per draw
|
2026-07-17 21:32:16 -04:00 |
|
swung0x48
|
92cced9bcc
|
[Fix] (MG_State, MG_Impl, MG_Test): enforce strict GL 3.3 core rules only on contexts that explicitly request a core profile - texture deleted-name reservation keep and VAO-0 draws relax otherwise or under MOBILEGL_RELAXED_SEMANTICS, and GL_CONTEXT_PROFILE_MASK reports the requested profile
|
2026-07-17 21:32:16 -04:00 |
|
swung0x48
|
1929a7c546
|
[Fix] (MG_State, MG_Backend/DirectGLES): preserve legacy texture reuse and clear default backend bindings - keep generated-but-unbound names alive for Minecraft 1.7.10 atlas uploads, synchronize bind-0 to native GLES without 1D/2D alias churn, and cover both paths with BGRA sub-image and binding-cache regressions
|
2026-07-17 21:32:15 -04:00 |
|
swung0x48
|
df7f5a369d
|
[Fix] (MG_Backend/DirectVulkan): render passes had zero subpass dependencies and same-layout transitions emit no barrier, so tilers could race tile loads against prior passes' stores (flickering artifacts in multi-pass chains like MC 26.3 OIT); add conservative external dependencies both ways
|
2026-07-17 21:03:52 -04:00 |
|
swung0x48
|
0de9861da4
|
[Fix] (MG_Backend/DirectVulkan): render-pass cache grew unbounded; age entries per present and evict after 1024 unused frames
|
2026-07-17 20:03:54 -04:00 |
|
swung0x48
|
6b223e4d23
|
[Fix] (MG_Backend/DirectVulkan): blendEnable was baked into pipelines without checking VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT; disable blending on formats that lack it
|
2026-07-17 20:03:53 -04:00 |
|
swung0x48
|
48568cdb89
|
[Fix] (MG_Backend/DirectVulkan): deferred glClear/glClearBuffer ignored color/depth/stencil write masks; gate the queued planes like the scissored path
|
2026-07-17 20:03:53 -04:00 |
|
swung0x48
|
8d83dedc0f
|
[Fix] (MG_Backend/DirectVulkan): pending deferred clears outlived blit/copy writes into the same texture and later stomped them (OIT's cloud_depth copy was erased by its own earlier queued clear); materialize destination pending clears before blit/copy writes
|
2026-07-17 19:24:55 -04:00 |
|
swung0x48
|
a25d8ee0e7
|
[Fix] (MG_Backend/DirectGLES): GLES clamps glClearColor to [0,1], zeroing the -FLT_MAX MAX-blend identity; route out-of-range color clears through glClearBufferfv
|
2026-07-17 11:45:55 -04:00 |
|
swung0x48
|
c30bd0fabb
|
[Fix] (MG_Backend/DirectGLES, MG_Impl/GLImpl): draw/read-buffer state could land on the wrong FBO (glDrawBuffer's static-array latch; SyncToBackend emitting glDrawBuffers/glReadBuffer for the non-bound target; no resync on bound-FBO attachment/drawbuffer edits) leaving MC 26.3's OIT color clears as no-ops; apply per bound target and track the FBO object version
|
2026-07-17 11:45:54 -04:00 |
|
swung0x48
|
c9fbf79d6a
|
[Fix] (MG_Backend/DirectGLES): blend equations were never synced to the driver (OIT's GL_MAX ran as ADD); diff and emit glBlendEquationSeparate(i) alongside the factor sync
|
2026-07-17 11:45:53 -04:00 |
|
swung0x48
|
f39e8738da
|
Merge origin/dev (readback overhaul c6d22e6e) into default-texture-objects - true per-target default texture objects supersede the readback branch texture-0 silent no-ops: removed the null-slot early-outs in TexImage1D/2D/3D(Multisample) and TexBuffer plus the DefaultTextureOperationsAreSilentNoOps test so name-0 operations actually (re)specify the default objects; deduped the shared state-reset fixes, keeping upstream std::clamp for GL_MAX_UNIFORM_BUFFER_BINDINGS, the Int-typed ActiveTexture combined-units range check, renderbuffer name-0 unbind, and vertex-attrib-0 current-value writes with the attrib-0 round-trip test
|
2026-07-16 23:50:47 -04:00 |
|