WIP: D3D11 Driver (for real this time!) #47

Draft
TheSpydog wants to merge 69 commits from TheSpydog/Refresh:d3d11-revived into main

D3D11 backend for Refresh, take two!

API Implementation:

  • CopyTextureToTexture
  • CopyTextureToBuffer
  • SetSwapchainPresentMode
  • DestroyDevice
  • DrawInstancedPrimitives
  • DrawIndexedPrimitives
  • DrawPrimitives
  • DrawPrimitivesIndirect
  • DispatchCompute
  • CreateComputePipeline
  • CreateGraphicsPipeline
  • CreateSampler
  • CreateShaderModule
  • CreateTexture
  • CreateBuffer
  • SetTextureData
  • SetTextureDataYUV
  • SetBufferData
  • PushVertexShaderUniforms
  • PushFragmentShaderUniforms
  • PushComputeShaderUniforms
  • BindVertexSamplers
  • BindFragmentSamplers
  • GetBufferData
  • QueueDestroyTexture
  • QueueDestroySampler
  • QueueDestroyBuffer
  • QueueDestroyShaderModule
  • QueueDestroyComputePipeline
  • QueueDestroyGraphicsPipeline
  • AcquireCommandBuffer
  • BeginRenderPass
  • EndRenderPass
  • BindGraphicsPipeline
  • SetViewport
  • SetScissor
  • BindVertexBuffers
  • BindIndexBuffer
  • BindComputePipeline
  • BindComputeBuffers
  • BindComputeTextures
  • ClaimWindow
  • UnclaimWindow
  • AcquireSwapchainTexture
  • GetSwapchainFormat
  • Submit
  • SubmitAndAcquireFence
  • Wait
  • WaitForFences
  • QueryFence
  • ReleaseFence
  • PrepareDriver
  • CreateDevice

Test Cases:

  • Cube
  • CopyTexture
  • ClearScreen
  • ClearScreenMultiWindow
  • BasicTriangle
  • TriangleVertexBuffer
  • TexturedQuad
  • AnimatedTexturedQuad
  • CullMode
  • BasicCompute
  • ComputeUniforms
  • DrawIndirect
  • InstancingAndOffsets
  • CompressedTextures
  • Texture3D
  • TextureMipmaps
  • VertexSampler
  • StoreLoad
  • GetBufferData
  • RenderTexture2D
  • RenderTexture3D
  • RenderTextureMipmaps
  • RenderTextureCube
  • BasicStencil
  • VideoPlayer
  • MSAA
  • DepthMSAA
  • MSAACube
  • WindowResizing
D3D11 backend for Refresh, take two! API Implementation: - [ ] CopyTextureToTexture - [ ] CopyTextureToBuffer - [x] SetSwapchainPresentMode - [x] DestroyDevice - [x] DrawInstancedPrimitives - [x] DrawIndexedPrimitives - [x] DrawPrimitives - [x] DrawPrimitivesIndirect - [x] DispatchCompute - [x] CreateComputePipeline - [x] CreateGraphicsPipeline - [x] CreateSampler - [x] CreateShaderModule - [x] CreateTexture - [x] CreateBuffer - [x] SetTextureData - [x] SetTextureDataYUV - [x] SetBufferData - [x] PushVertexShaderUniforms - [x] PushFragmentShaderUniforms - [x] PushComputeShaderUniforms - [x] BindVertexSamplers - [x] BindFragmentSamplers - [x] GetBufferData - [x] QueueDestroyTexture - [x] QueueDestroySampler - [x] QueueDestroyBuffer - [x] QueueDestroyShaderModule - [x] QueueDestroyComputePipeline - [x] QueueDestroyGraphicsPipeline - [x] AcquireCommandBuffer - [x] BeginRenderPass - [x] EndRenderPass - [x] BindGraphicsPipeline - [x] SetViewport - [x] SetScissor - [x] BindVertexBuffers - [x] BindIndexBuffer - [x] BindComputePipeline - [x] BindComputeBuffers - [x] BindComputeTextures - [x] ClaimWindow - [x] UnclaimWindow - [x] AcquireSwapchainTexture - [x] GetSwapchainFormat - [x] Submit - [x] SubmitAndAcquireFence - [x] Wait - [x] WaitForFences - [x] QueryFence - [x] ReleaseFence - [x] PrepareDriver - [x] CreateDevice Test Cases: - [ ] Cube - [ ] CopyTexture - [x] ClearScreen - [x] ClearScreenMultiWindow - [x] BasicTriangle - [x] TriangleVertexBuffer - [x] TexturedQuad - [x] AnimatedTexturedQuad - [x] CullMode - [x] BasicCompute - [x] ComputeUniforms - [x] DrawIndirect - [x] InstancingAndOffsets - [x] CompressedTextures - [x] Texture3D - [x] TextureMipmaps - [x] VertexSampler - [x] StoreLoad - [x] GetBufferData - [x] RenderTexture2D - [x] RenderTexture3D - [x] RenderTextureMipmaps - [x] RenderTextureCube - [x] BasicStencil - [x] VideoPlayer - [x] MSAA - [x] DepthMSAA - [x] MSAACube - [x] WindowResizing
TheSpydog added 19 commits 2023-10-13 02:43:10 +00:00
TheSpydog added 1 commit 2023-10-13 03:08:11 +00:00
continuous-integration/drone/pr Build is failing Details
50730bd52d
CreateSampler
TheSpydog added 1 commit 2023-10-13 03:12:20 +00:00
continuous-integration/drone/pr Build is failing Details
595c15a087
Add a border color conversion function
TheSpydog added 1 commit 2023-10-13 03:13:21 +00:00
continuous-integration/drone/pr Build is failing Details
5ba865489b
QueueDestroySampler
TheSpydog added 1 commit 2023-10-27 01:38:18 +00:00
continuous-integration/drone/pr Build is failing Details
21c5ded803
Fix redundant error code printing
TheSpydog added 1 commit 2023-10-27 02:25:52 +00:00
TheSpydog added 1 commit 2023-10-27 02:40:05 +00:00
continuous-integration/drone/pr Build is failing Details
01aff2e5f1
Fix command buffer memory leak
TheSpydog added 1 commit 2023-10-27 04:03:54 +00:00
continuous-integration/drone/pr Build is failing Details
bf4b640937
Fix texture conversion array
TheSpydog added 1 commit 2023-11-05 20:17:35 +00:00
TheSpydog added 1 commit 2023-11-06 01:20:46 +00:00
TheSpydog force-pushed d3d11-revived from f91c18e85c to 641abe4bb5 2024-02-07 03:13:47 +00:00 Compare
TheSpydog added 1 commit 2024-02-07 03:48:30 +00:00
TheSpydog added 1 commit 2024-02-07 04:40:30 +00:00
TheSpydog added 1 commit 2024-02-07 13:33:39 +00:00
continuous-integration/drone/pr Build is failing Details
69df00398e
Fix a couple minor memory leaks
TheSpydog added 1 commit 2024-02-07 13:34:22 +00:00
continuous-integration/drone/pr Build is failing Details
1b63ff8467
Minor style cleanup
TheSpydog added 1 commit 2024-02-07 14:03:04 +00:00
TheSpydog added 2 commits 2024-02-07 15:09:46 +00:00
TheSpydog added 1 commit 2024-02-07 15:35:20 +00:00
continuous-integration/drone/pr Build is failing Details
b0bd383f2e
Fix fragment uniform buffer block calculation
TheSpydog added 1 commit 2024-02-07 16:08:30 +00:00
TheSpydog added 1 commit 2024-02-07 16:18:56 +00:00
continuous-integration/drone/pr Build is failing Details
597b8dcef3
BindVertexSamplers
TheSpydog added 1 commit 2024-02-07 17:53:27 +00:00
continuous-integration/drone/pr Build is failing Details
f36abf29de
DrawPrimitivesIndirect
TheSpydog added 1 commit 2024-02-08 03:03:28 +00:00
continuous-integration/drone/pr Build is failing Details
ebf96ff423
First rough draft of Compute functions (untested!)
TheSpydog added 2 commits 2024-02-09 05:47:33 +00:00
TheSpydog added 1 commit 2024-02-09 05:59:18 +00:00
continuous-integration/drone/pr Build is failing Details
ca7f64eb9a
Clean up fence logic
TheSpydog added 1 commit 2024-02-09 06:32:01 +00:00
continuous-integration/drone/pr Build is failing Details
ecff6f55df
Fence API
TheSpydog added 1 commit 2024-02-09 06:35:26 +00:00
TheSpydog added 1 commit 2024-02-09 06:57:35 +00:00
continuous-integration/drone/pr Build is failing Details
463c298c96
GetBufferData
TheSpydog added 1 commit 2024-02-09 08:02:49 +00:00
continuous-integration/drone/pr Build is failing Details
3f6ecd38a0
Actually compile compute shaders
TheSpydog added 1 commit 2024-02-09 08:17:16 +00:00
continuous-integration/drone/pr Build is failing Details
06d93a55a3
PushComputeShaderUniforms + CreateComputePipeline fix
TheSpydog added 1 commit 2024-02-09 17:04:40 +00:00
TheSpydog added 1 commit 2024-02-09 17:20:00 +00:00
TheSpydog added 1 commit 2024-02-09 18:09:37 +00:00
continuous-integration/drone/pr Build is failing Details
7093ce0094
First rough pass at color RTs
TheSpydog added 1 commit 2024-02-09 21:28:13 +00:00
TheSpydog added 1 commit 2024-02-09 22:04:03 +00:00
continuous-integration/drone/pr Build is failing Details
1a87a284c4
DepthStencilView creation + DS state fixes
TheSpydog added 1 commit 2024-02-09 22:37:13 +00:00
TheSpydog added 1 commit 2024-02-09 22:40:12 +00:00
continuous-integration/drone/pr Build is failing Details
c121492e47
Fix copy-paste error from last commit
TheSpydog added 1 commit 2024-02-09 23:23:54 +00:00
continuous-integration/drone/pr Build is failing Details
e0dcaa222b
Two typos in the same malloc... + cube RT fixes
TheSpydog added 1 commit 2024-02-09 23:53:00 +00:00
continuous-integration/drone/pr Build is failing Details
25cec457b4
SetTextureDataYUV
TheSpydog added 1 commit 2024-02-10 05:56:44 +00:00
continuous-integration/drone/pr Build is failing Details
81351a1c1b
MSAA for color and depth targets
TheSpydog added 1 commit 2024-02-10 06:19:18 +00:00
continuous-integration/drone/pr Build is failing Details
01a36b940b
Fix non-MSAA cube RTs
TheSpydog added 1 commit 2024-02-10 23:08:03 +00:00
TheSpydog added 1 commit 2024-02-11 00:00:18 +00:00
continuous-integration/drone/pr Build is failing Details
54ffdc180d
PresentMode fixes
TheSpydog added 1 commit 2024-02-11 03:49:28 +00:00
continuous-integration/drone/pr Build is failing Details
506c2e4819
FIXME fixups, mostly for contextLock
TheSpydog added 1 commit 2024-02-11 04:18:32 +00:00
TheSpydog added 1 commit 2024-02-11 04:21:09 +00:00
continuous-integration/drone/pr Build is failing Details
617ce4edf8
Note which FIXME's require a Refresh API update
TheSpydog added 1 commit 2024-02-11 05:01:03 +00:00
continuous-integration/drone/pr Build is failing Details
74bd056adf
Fix a few more FIXME's
TheSpydog added 1 commit 2024-02-11 06:07:09 +00:00
continuous-integration/drone/pr Build is failing Details
19c6c48021
Add shader type to the .refresh shader bytecode format
TheSpydog added 1 commit 2024-02-11 06:08:42 +00:00
continuous-integration/drone/pr Build is failing Details
9ea76e92dc
Move uav FIXME's to API FIXME's
TheSpydog added 1 commit 2024-02-11 06:36:48 +00:00
continuous-integration/drone/pr Build is failing Details
b827713cb0
Compute buffer creation fixes
TheSpydog added 1 commit 2024-02-11 06:40:55 +00:00
continuous-integration/drone/pr Build is failing Details
345924f12d
Fix infinite while loop in D3D11_INTERNAL_WaitForFence
Some checks failed
continuous-integration/drone/pr Build is failing
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
You can also view command line instructions.

Step 1:

From your project repository, check out a new branch and test the changes.
git checkout -b TheSpydog-d3d11-revived main
git pull d3d11-revived

Step 2:

Merge the changes and update on Gitea.
git checkout main
git merge --no-ff TheSpydog-d3d11-revived
git push origin main
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: MoonsideGames/Refresh#47
There is no content yet.