Skip to content

Commit 2636f76

Browse files
[Rendering] Fixed render invalidation during frame;
1 parent e3a24f1 commit 2636f76

File tree

6 files changed

+6
-18
lines changed

6 files changed

+6
-18
lines changed

Engine/Staple.Core/Rendering/RenderSystem/Backend/Impls/SDLGPU/Commands/SDLGPUUpdateIndexBufferCommand.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public void Update(IRendererBackend rendererBackend)
2323

2424
if (buffer.buffer != nint.Zero)
2525
{
26-
SDL.WaitForGPUIdle(backend.device);
2726
SDL.ReleaseGPUBuffer(backend.device, buffer.buffer);
2827
SDL.ReleaseGPUTransferBuffer(backend.device, buffer.transferBuffer);
2928

@@ -71,7 +70,6 @@ public void Update(IRendererBackend rendererBackend)
7170

7271
if (buffer.transferBuffer == nint.Zero)
7372
{
74-
SDL.WaitForGPUIdle(backend.device);
7573
SDL.ReleaseGPUBuffer(backend.device, buffer.buffer);
7674

7775
buffer.buffer = nint.Zero;

Engine/Staple.Core/Rendering/RenderSystem/Backend/Impls/SDLGPU/Commands/SDLGPUUpdateVertexBufferCommand.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public void Update(IRendererBackend rendererBackend)
2323

2424
if (buffer.buffer != nint.Zero)
2525
{
26-
SDL.WaitForGPUIdle(backend.device);
2726
SDL.ReleaseGPUBuffer(backend.device, buffer.buffer);
2827
SDL.ReleaseGPUTransferBuffer(backend.device, buffer.transferBuffer);
2928

@@ -71,7 +70,6 @@ public void Update(IRendererBackend rendererBackend)
7170

7271
if (buffer.transferBuffer == nint.Zero)
7372
{
74-
SDL.WaitForGPUIdle(backend.device);
7573
SDL.ReleaseGPUBuffer(backend.device, buffer.buffer);
7674

7775
buffer.buffer = nint.Zero;

Engine/Staple.Core/Rendering/RenderSystem/Backend/Impls/SDLGPU/SDLGPURendererBackend+Buffers.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ internal void ReleaseBufferResource(BufferResource resource)
1212
return;
1313
}
1414

15-
SDL.WaitForGPUIdle(device);
16-
1715
if (resource.transferBuffer != nint.Zero)
1816
{
1917
SDL.ReleaseGPUTransferBuffer(device, resource.transferBuffer);

Engine/Staple.Core/Rendering/RenderSystem/Backend/Impls/SDLGPU/SDLGPURendererBackend+Textures.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ internal void ReleaseTextureResource(TextureResource resource)
2323
}
2424
}
2525

26-
SDL.WaitForGPUIdle(device);
27-
2826
if (resource.transferBuffer != nint.Zero)
2927
{
3028
SDL.ReleaseGPUTransferBuffer(device, resource.transferBuffer);

Engine/Staple.Core/Rendering/RenderSystem/Backend/Impls/SDLGPU/SDLGPURendererBackend.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,6 @@ internal class TransientEntry
9898

9999
public void Clear()
100100
{
101-
SDL.WaitForGPUIdle(backend.device);
102-
103101
if(vertexBuffer != nint.Zero)
104102
{
105103
SDL.ReleaseGPUBuffer(backend.device, vertexBuffer);
@@ -161,7 +159,6 @@ public void CreateBuffers()
161159

162160
if (transferBuffer == nint.Zero)
163161
{
164-
SDL.WaitForGPUIdle(backend.device);
165162
SDL.ReleaseGPUBuffer(backend.device, vertexBuffer);
166163

167164
vertexBuffer = nint.Zero;
@@ -181,6 +178,8 @@ public void CreateBuffers()
181178

182179
if (backend.copyPass == nint.Zero)
183180
{
181+
SDL.ReleaseGPUBuffer(backend.device, vertexBuffer);
182+
184183
return;
185184
}
186185

@@ -241,7 +240,6 @@ public void CreateBuffers()
241240

242241
if (transferBuffer == nint.Zero)
243242
{
244-
SDL.WaitForGPUIdle(backend.device);
245243
SDL.ReleaseGPUBuffer(backend.device, vertexBuffer);
246244
SDL.ReleaseGPUBuffer(backend.device, indexBuffer);
247245

@@ -323,7 +321,6 @@ public void CreateBuffers()
323321

324322
if (transferBuffer == nint.Zero)
325323
{
326-
SDL.WaitForGPUIdle(backend.device);
327324
SDL.ReleaseGPUBuffer(backend.device, vertexBuffer);
328325
SDL.ReleaseGPUBuffer(backend.device, uintIndexBuffer);
329326

@@ -626,8 +623,6 @@ public void Destroy()
626623
{
627624
if(device != nint.Zero)
628625
{
629-
SDL.WaitForGPUIdle(device);
630-
631626
foreach(var pair in graphicsPipelines)
632627
{
633628
SDL.ReleaseGPUGraphicsPipeline(device, pair.Value);

Engine/Staple.Core/Rendering/Windowing/RenderWindow.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,15 @@ private void SingleThreadLoop()
124124
while (window.ShouldClose == false && shouldStop == false)
125125
{
126126
PerformanceProfilerSystem.StartFrame();
127-
RenderSystem.Backend.BeginFrame();
128127

129128
Input.UpdateState();
130129

131130
window.PollEvents();
132131

132+
CheckEvents();
133+
134+
RenderSystem.Backend.BeginFrame();
135+
133136
lock (renderLock)
134137
{
135138
shouldRender = window.Unavailable == false && (AppSettings.Current.runInBackground == true || window.IsFocused == true);
@@ -187,8 +190,6 @@ private void SingleThreadLoop()
187190
}
188191
}
189192

190-
CheckEvents();
191-
192193
if (Paused)
193194
{
194195
fixedTimer = 0;

0 commit comments

Comments
 (0)