[Feat] (Diligent, MG_Impl): wire CopyTexImage2D/CopyTexSubImage2D readback copy

- Copy current read-FBO color attachment into the bound GL_TEXTURE_2D
- Uses whole-color CopyTexture fallback for now; 13 Diligent tests pass
This commit is contained in:
BZLZHH
2026-08-23 09:39:40 +08:00
parent 23b53eacce
commit 6bf32acdef
4 changed files with 86 additions and 2 deletions
+3 -2
View File
@@ -151,6 +151,7 @@ Verified locally on Turnip Adreno 750:
- `DrawArraysInstanced` / `DrawElementsInstanced` family
- `ClearBufferfv` / `ClearBufferiv` / `ClearBufferuiv`
- `BlitFramebuffer` (same-size color copy between current read/draw FBOs)
- `CopyTexImage2D` / `CopyTexSubImage2D` (whole-color copy fallback)
- `ReadPixels` from default and user color attachments
- Primitive expansion:
- `GL_TRIANGLE_FAN` expanded to triangle list
@@ -210,7 +211,7 @@ Notes:
- Global UBO (default-block `glUniform*`) and named application UBO blocks (through `glBindBufferBase`/`glUniformBlockBinding`) now upload and bind; SSBOs are still not fed from frontend buffer bindings.
- No swapchain / EGL window surface presentation yet; `Present()` only flushes.
- No transform feedback / queries / sync / readback of non-color resources.
- Draw range, multi-draw, instanced-draw wrappers, clear-buffer, blit and read-pixels are now wired; indirect draws, CopyTexImage/GetTexImage and buffer subdata paths still remain.
- Draw range, multi-draw, instanced-draw wrappers, clear-buffer, blit, read-pixels and CopyTexImage* are now wired; indirect draws, GetTexImage and buffer subdata paths still remain.
- A last-PSO cache now avoids recreating the pipeline when program/render-state/topology/VAO layout is unchanged; texture/UBO resources are still rebound dynamically per draw.
- The `GLFunctionsTable` is only partially populated.
@@ -242,7 +243,7 @@ Notes:
- [x] `MultiDraw*`
- [x] `BlitFramebuffer` (same-size color copy)
- [x] `ReadPixels` from non-default framebuffer
- [ ] `GetTexImage` / `CopyTexImage*` / indirect draws
- [~] `CopyTexImage*` wired as whole-color copy; `GetTexImage` / indirect draws remain
6. **Expand local test suite**
- [x] Scissor test