Commit Graph

  • 06605ed0ea [Test] (Tessellation): include the standard headers the link test uses directly swung0x48 2026-08-27 10:02:28 -04:00
  • e1d5bdc4a5 [Fix] (Blend): decline an unsupported dual-source blend instead of throwing through the GL ABI swung0x48 2026-08-27 09:56:18 -04:00
  • 66867a41ba [Fix] (Program): count the tessellation control stage as a transform-feedback capture stage swung0x48 2026-08-27 09:56:18 -04:00
  • ebff4b21f7 [Fix] (Query): tie the two tessellation pipeline-statistics targets to the GL_ARB_tessellation_shader advertisement swung0x48 2026-08-27 09:56:10 -04:00
  • d4e7378868 [Chore] (ShaderTranspiler): pin glslang fork at d89cf443 (patch-array io-resize guard for the evaluation stage) swung0x48 2026-08-27 10:22:37 -04:00
  • 01d20e5c96 [Test] (Review): border-colour clamping, a readback across a mip gap, and blending on renderbuffer formats with no exact VkFormat swung0x48 2026-08-27 08:23:24 -04:00
  • b04c67d9a8 [Test] (Review): pin the sampler getter matrix, the shadow-readback refusals, and the proxy and by-name parameter targets swung0x48 2026-08-27 08:23:24 -04:00
  • 685d83e3ec [Fix] (Review): bound a texture readback by the image's mip count, refuse cross-format depth/stencil copies, and probe the renderbuffer's real VkFormat swung0x48 2026-08-27 08:23:16 -04:00
  • 009b140691 [Fix] (Review): clamp integer and floating-point border colours to the sampled format's representable range swung0x48 2026-08-27 08:23:16 -04:00
  • 1f44e5bc1d [Fix] (Review): convert every scalar sampler query to the type the caller asked for instead of the other type's bit pattern swung0x48 2026-08-27 08:23:16 -04:00
  • d9aebcba26 [Fix] (Review): refuse a CPU-shadow readback whose layout the pack path cannot produce, and apply the parameter-target rule to proxy and by-name spellings swung0x48 2026-08-27 08:23:16 -04:00
  • 0db666897e [Fix] (DirectGLES): key the border-colour sync memo on the authoritative representation, not just the float one swung0x48 2026-08-27 05:47:27 -04:00
  • 5f445e499f [Test] (Integration): integer border-colour sampling and clear-tex-image on a texture with no level 0 swung0x48 2026-08-27 05:12:22 -04:00
  • c52ebd5bf6 [Test] (Texture): pin the border-colour forms, the GL 4.6 conversion pair and the texparameter validation gaps swung0x48 2026-08-27 05:12:22 -04:00
  • 8e072bc793 [Fix] (DirectVulkan): answer a texture-image query from the CPU shadow when the texture has no VkImage swung0x48 2026-08-27 05:12:21 -04:00
  • 88ee75be0e [Fix] (DirectVulkan): resolve renderbuffer VkFormats through the shared texture table and police copy size-compatibility swung0x48 2026-08-27 05:11:53 -04:00
  • 0dbb4ceba8 [Fix] (DirectVulkan): resolve arbitrary and integer border colours through VK_EXT_custom_border_color, clamped to the sampled format swung0x48 2026-08-27 05:11:16 -04:00
  • a94b3e0bd5 [Fix] (DirectGLES): forward an integer border colour through glTexParameterIiv/glSamplerParameterIiv instead of flattening it to float swung0x48 2026-08-27 05:10:32 -04:00
  • 764b6e044d [Fix] (Texture): reject illegal texparameter targets and sampler enum values, invert the integer border-colour read, and report multisample sampler state as INVALID_ENUM swung0x48 2026-08-27 05:10:32 -04:00
  • c1d89de729 [Fix] (Sampler): carry GL_TEXTURE_BORDER_COLOR with its form, convert per GL 4.6 eq 2.2/2.3, and unify the name and scalar-pname error classes swung0x48 2026-08-27 05:10:26 -04:00
  • c136384f97 [CI] (TraceReplay): keep the rd12-odinlite perf fixture out of the CI matrices until its archive is published swung0x48 2026-08-27 08:23:04 -04:00
  • 1920a3d16f [Test] (Review): pin the composite's linked capture list, the capture-stage rule, and the matrix uniform forms' link check swung0x48 2026-08-27 06:00:54 -04:00
  • 11f4b4bd3b [Fix] (Review): honour a SPIR-V module's transform-feedback decorations, take the composite's capture list from the linked snapshot, and reorder every glProgramUniformMatrix* link check swung0x48 2026-08-27 05:56:45 -04:00
  • 9ef33f4274 [Fix] (Review): bound copies by the requested level, reach every cube face, keep array layer counts, and give glSpecializeShader its spec error surface swung0x48 2026-08-27 05:51:58 -04:00
  • e430e1b3be [Fix] (Texture): give glTexBuffer the sized-format check its TODO deferred and the target-taking forms their own INVALID_ENUM swung0x48 2026-08-27 04:57:16 -04:00
  • e315d9e798 [Test] (GlSpirv): unit and headless-GPU coverage for glShaderBinary, glSpecializeShader and the SPIR_V_BINARY state swung0x48 2026-08-27 04:54:18 -04:00
  • 6f299372c6 [Feat] (Program): implement GL_ARB_gl_spirv - glShaderBinary, glSpecializeShader and the SPIR_V_BINARY state, feeding the module into the ordinary compile pipeline swung0x48 2026-08-27 04:47:01 -04:00
  • be7bf21eb8 [Fix] (ShaderTranspiler): enforce the layout(binding) range rule for samplers, images and uniform/atomic-counter blocks, not only for SSBOs swung0x48 2026-08-27 04:38:57 -04:00
  • 0e4302b399 [Feat] (RenderState): implement glClipControl, glPolygonOffsetClamp and glTextureBarrier instead of stubbing them swung0x48 2026-08-27 04:24:41 -04:00
  • c9c2dcb42a [Feat] (Query): accept the ARB_pipeline_statistics_query targets and report zero counter bits for them swung0x48 2026-08-27 04:24:40 -04:00
  • 2d938971b9 [Fix] (Getter): saturate combined uniform components in 64-bit and answer the missing GL4 state tokens swung0x48 2026-08-27 04:24:39 -04:00
  • f7e23d5d83 [Fix] (DirectVulkan): generate mipmaps for cube-map-array and 1D-array targets, and stop shrinking an array's layer count down the chain swung0x48 2026-08-27 04:24:39 -04:00
  • 02fbb816e9 [Fix] (Texture): cube-map-array shape rules on glTexImage3D, GL_TEXTURE_SHARED_SIZE, and the unimplemented glCopyTexSubImage1D/3D swung0x48 2026-08-27 04:24:38 -04:00
  • 0e0882cfc6 [Test] (IntegrationTest): read cube faces back through a per-face FBO, which glGetTexImage's face token does not distinguish on DirectVulkan swung0x48 2026-08-27 05:07:38 -04:00
  • de09646d5e [Fix] (DirectVulkan): one shared attachment layer count for the render pass and the clear key, and direct VkResult checks in the render-pass builder swung0x48 2026-08-27 05:04:44 -04:00
  • 747864777e [Test] (IntegrationTest): pin the layered 3D and cube-map-array attachment shapes and their per-layer routing swung0x48 2026-08-27 04:37:29 -04:00
  • 6fc3504bd9 [Fix] (Framebuffer): carry the layered flag through the GL_DEPTH_STENCIL_ATTACHMENT split swung0x48 2026-08-27 04:37:28 -04:00
  • df1bcdba09 [Fix] (DirectVulkan): legal view types for layered 3D/cube attachments, and a real failure channel for the render-pass builder swung0x48 2026-08-27 04:19:06 -04:00
  • 843c61dee1 [Chore] (ShaderTranspiler): pin glslang fork at 7e255451 (GL_ARB_cull_distance registration and version-gated availability) swung0x48 2026-08-27 04:01:43 -04:00
  • c0a3f4cc50 [Docs] (Getter): restate the uniform-binding airtightness argument against the per-stage sum, not the combined limit swung0x48 2026-08-27 03:30:24 -04:00
  • 06744fde7f [Fix] (Getter): close the review findings - six-stage combined uniform blocks, bounded uniform-block bindings, honest vertex-stream count, per-format sample ceilings swung0x48 2026-08-27 03:24:34 -04:00
  • 6cc9faf772 [Feat] (Program): report the geometry and tessellation link properties glGetProgramiv had no source for swung0x48 2026-08-27 02:18:17 -04:00
  • 7168f2ef77 [Fix] (Getter): answer the GL 4.6 limit surface honestly - tess/cull/subroutine pnames, TBuiltInResource drift, 84 UBO binding points, 64-bit GL_MAX_ELEMENT_INDEX, per-category sample truth swung0x48 2026-08-27 02:18:10 -04:00
  • 07669aacd4 [Fix] (ShaderTranspiler): fan #extension implications out to both new gates and bound the mid-line #version probe to its line swung0x48 2026-08-27 03:01:27 -04:00
  • d52a3b2196 [Test] (IntegrationTest): sample-shading state reaches both backends without disturbing the draw swung0x48 2026-08-27 02:23:38 -04:00
  • 9e23016dd4 [Perf] (ShaderTranspiler): memchr the mid-line #version scan and gate it on an accepted directive swung0x48 2026-08-27 02:16:33 -04:00
  • f1354dc25e [Fix] (DirectVulkan): hash the sample-shading state into the pipeline memo key swung0x48 2026-08-27 02:15:59 -04:00
  • b7a694711a [Test] (IntegrationTest): gl_NumSamples scenario - the value must follow the draw framebuffer, not the link swung0x48 2026-08-27 02:14:13 -04:00
  • 2ae848ca19 [Fix] (ShaderTranspiler): route restored ES extension macros through glslang's custom preamble and detect a mid-line repeated #version swung0x48 2026-08-27 02:03:12 -04:00
  • acf86d1fb6 [Feat] (RenderState): implement glMinSampleShading and the GL_SAMPLE_SHADING enable on both backends swung0x48 2026-08-27 01:56:32 -04:00
  • 07a0408a28 [Fix] (ShaderTranspiler): lower gl_NumSamples onto a reserved global-UBO uniform, restore ES preamble extension macros, tolerate a repeated #version swung0x48 2026-08-27 01:47:02 -04:00
  • 8cf2e2aea9 [Fix] (Getter): answer GL_PATCH_DEFAULT_*_LEVEL from the float state in glGetBooleanv and write every component in glGetInteger64v Swung0x48 2026-08-27 03:18:15 -04:00
  • 31252cf0da [Fix] (Tessellation): bound the pass-through control-stage cache and stop baking "draw nothing" for levels GL clamps Swung0x48 2026-08-27 03:18:14 -04:00
  • 2635fe84b6 [Fix] (Tessellation): compare the default patch levels by bit pattern, so a NaN level stops re-linking the program on every draw Swung0x48 2026-08-27 03:18:13 -04:00
  • e3163233a5 [Fix] (Framebuffer): apply the glFramebufferTexture error conditions to the 2D/3D/Layer attach paths and bound a view by its own level count Swung0x48 2026-08-27 03:18:12 -04:00
  • eb9e4fdac1 [Fix] (DirectVulkan): report the index the arbitrary-restart rewrite cannot represent instead of silently drawing a different vertex Swung0x48 2026-08-27 03:18:10 -04:00
  • 90b7a689c5 [Fix] (Backend): resolve primitive restart per draw - never for a non-indexed one, and never on an index the type cannot hold Swung0x48 2026-08-27 03:18:09 -04:00
  • e69e939d1a [Fix] (ProgramLink): fail the link when a tessellation control stage declares more output vertices than GL_MAX_PATCH_VERTICES Swung0x48 2026-08-27 02:11:23 -04:00
  • b675e2a0b0 [Fix] (Drawing): refuse a draw whose program runs a geometry or tessellation stage with no vertex shader Swung0x48 2026-08-27 02:11:21 -04:00
  • 6979926a6f [Fix] (Framebuffer): the four glFramebufferTexture error conditions the DSA sibling already implemented Swung0x48 2026-08-27 02:11:20 -04:00
  • d5286e69b6 [Feat] (Tessellation): implement glPatchParameterfv and bake the default levels into both pass-through control stages Swung0x48 2026-08-27 02:11:19 -04:00
  • 0f2fcbc469 [Fix] (Backend): honour desktop GL_PRIMITIVE_RESTART with an arbitrary index instead of throwing through the C GL ABI Swung0x48 2026-08-27 02:11:18 -04:00
  • 18fccdd796 [Feat] (Backend): advertise OpenGL 4.6 (target version + OpenGL44/45/46 tokens) on both backends swung0x48 2026-08-26 23:48:36 -04:00
  • 0d2fceab0e [Docs] (DeviceBench): note session.sh leaves frequency pins active by design swung0x48 2026-08-26 05:52:28 -04:00
  • 82decded58 [Test] (TraceReplay): minecraft-1.21.4-rd12-odinlite-in-world perf fixture (campaign benchmark scene) swung0x48 2026-08-26 05:51:08 -04:00
  • d04a3394de [Feat] (DeviceBench): launch retry loop (signal-34 JVM flake), session.sh runner, MSYS path-conversion guards swung0x48 2026-08-26 04:06:43 -04:00
  • 33eabfc2ff [Perf] (DirectGLES): upload the union dirty box instead of scatter rects when staging through the unpack ring (each PBO-sourced glTexSubImage is a GPU copy job on Mali; ~100 sprite rects per tick cost +6ms/frame of GPU time) swung0x48 2026-08-26 03:55:31 -04:00
  • 56e5d13dc9 [Perf] (DirectGLES): stage glTexSubImage uploads through a persistent-mapped unpack PBO ring (Mali blocks the render thread on in-flight destination textures) swung0x48 2026-08-26 03:39:09 -04:00
  • 34b7cc772f [Fix] (Build): compile fordebug native code as RelWithDebInfo (debuggable APK was shipping an -O0 libMobileGL.so, invalidating all performance measurements on this flavor) swung0x48 2026-08-26 02:18:47 -04:00
  • c1d6a3c908 [Feat] (TraceReplay): benchmark mode with per-frame timing for device fixtures swung0x48 2026-08-26 02:17:35 -04:00
  • 386bd7e461 [Feat] (DeviceBench): scripted in-game FPS benchmark harness (FCLFPS logcat sampling, MTK ppm frequency pinning, thermal gate, GPU busy telemetry) swung0x48 2026-08-26 01:51:04 -04:00
  • 12df061e0b [Test] (SelfTest): model the vertex-input-location and layered-blit defects in the fake driver and pin both probes' controls swung0x48 2026-08-25 05:57:58 -04:00
  • d83a48da5c [Fix] (SelfTest): read the probe-saved texture bindings off the same unit the restore puts them back on swung0x48 2026-08-25 05:40:08 -04:00
  • b3100b0de5 [Fix] (DirectGLES): take the layered-blit substitute's colour destination from the draw buffer that is actually enabled, and leave self-overlapping copies alone swung0x48 2026-08-25 05:38:12 -04:00
  • 1cde801a01 [Fix] (DirectGLES): blit onto a non-zero array layer with glCopyImageSubData where the driver ignores the destination layer swung0x48 2026-08-25 05:27:46 -04:00
  • 52c050131e [Fix] (DirectGLES): advertise the vertex attributes whose layout(location) the driver's compiler will actually accept swung0x48 2026-08-25 05:21:50 -04:00
  • ebb8a4cebf [Fix] (DirectGLES, DirectVulkan): answer GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT with the storage limit, not the uniform one swung0x48 2026-08-25 05:21:42 -04:00
  • 5398fb4289 [Fix] (IntegrationTest): report the backend that actually comes up when MOBILEGL_BACKEND_TYPE is unset swung0x48 2026-08-25 04:52:21 -04:00
  • 7f2ca68615 [Test] (IntegrationTest): take the shader-compiler and viewport quirks from the environment instead of internal symbols swung0x48 2026-08-25 04:52:14 -04:00
  • b12ef4d717 [Test] (DirectVulkan): ask each unbound-descriptor case only for the limit its own resource kind needs swung0x48 2026-08-25 03:44:36 -04:00
  • 724755d9df [Test] (DirectVulkan): pin the image-uniform numeric domain the unbound placeholder is chosen from swung0x48 2026-08-25 03:44:36 -04:00
  • 59f7059bf4 [Fix, Test] (DirectVulkan): keep the draw when a program declares an image-backed resource the application left unbound swung0x48 2026-08-24 05:31:15 -04:00
  • 4446c861be [Fix, Test] (DirectVulkan): keep the draw when a program declares a storage block the application left unbound swung0x48 2026-08-24 04:57:05 -04:00
  • 24dfbb41f9 [Fix] (Diligent): fix y inversion and front-face winding in viewport mapping Feat/Diligent-Vulkan-Backend BZLZHH 2026-08-23 12:25:41 +08:00
  • ca7878bf3a [Feat] (AndroidPlugin): expose DiligentVulkan backend in plugin selector BZLZHH 2026-08-23 11:11:20 +08:00
  • e418063b08 [Feat] (Diligent, EGL): forward eglSwapInterval to swap chain Present BZLZHH 2026-08-23 11:01:40 +08:00
  • b43ec25bd7 [Feat] (Diligent, EGL): validate and defer EGL surface activation BZLZHH 2026-08-23 10:57:09 +08:00
  • 525607bad6 [Feat] (Diligent, EGL): release swap chain on EGL surface release BZLZHH 2026-08-23 10:55:40 +08:00
  • b045024b6c [Feat] (Diligent, EGL): route EGL window resize to Diligent swap chain BZLZHH 2026-08-23 10:53:19 +08:00
  • 602da1d131 [Merge] (GLImpl, DirectGLES, DirectVulkan): complete direct state access and the compressed-texture family swung0x48 2026-08-22 22:47:08 -04:00
  • 14dfbeeed9 [Feat] (Diligent, EGL): wire EGL window swapchain creation via Diligent ISwapChain BZLZHH 2026-08-23 10:46:06 +08:00
  • 06bbaf32b1 [Merge] (GLImpl, DirectGLES, DirectVulkan): take the extension advertisements under the DSA completion swung0x48 2026-08-22 22:42:47 -04:00
  • d7e79409b3 [Feat] (Diligent): wire SetSwapInterval no-op BZLZHH 2026-08-23 10:16:56 +08:00
  • ca3b524396 [Feat] (Diligent): wire CPU timer query fallback BZLZHH 2026-08-23 10:15:19 +08:00
  • 071c8eb673 [Feat] (Diligent): wire fence sync CPU fallback BZLZHH 2026-08-23 10:12:58 +08:00
  • 51a43518ac [Feat] (Diligent, MG_Impl): wire BlitNamedFramebuffer color copy BZLZHH 2026-08-23 10:11:17 +08:00
  • 34ff95f6f5 [Feat] (Diligent, MG_Impl): wire GenerateMipmap via Diligent GPU mip generation BZLZHH 2026-08-23 10:08:54 +08:00
  • b9d1504cc5 [Feat] (Diligent, MG_Impl): wire CopyImageSubData whole-texture copy BZLZHH 2026-08-23 10:05:50 +08:00
  • a223499143 [Feat] (Diligent, MG_Impl): wire ClearBufferfi and stencil clears through ClearBufferiv/uiv BZLZHH 2026-08-23 10:04:14 +08:00
  • 9bcf0a15a0 [Docs] (DirectGLES, DirectVulkan): correct what advertising cube map arrays actually unlocks swung0x48 2026-08-22 22:03:26 -04:00