Skip to content

Commit 1bc6647

Browse files
committed
fix: graphics ext buffer usage flags BREAKING (v1.6.0)
1 parent 324eb84 commit 1bc6647

File tree

13 files changed

+78
-65
lines changed

13 files changed

+78
-65
lines changed

docs/changelog.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
Below is the change log for typical users. Minor and older changes stripped
66
away, please see git history for details.
77

8-
- v0.6.3 (2025-xx-xx) (draw) add image quad (v1.4.0)
8+
- v0.7.0 (2025-xx-xx) (draw) add image quad (v1.4.0)
99
(draw) add draw callbacks
1010
(datatime) fix string name for "March"
1111
(starter) added reverse z depth buffer support (v1.3.0)
12-
(graphics) fix draw_indexed multiple index buffers (v1.5.1)
13-
(graphics) fix new validation layer errors (v1.5.2)
12+
(graphics) fix draw_indexed multiple index buffers (v1.6.0)
13+
(graphics) fix new validation layer errors
14+
(graphics) correct buffer usage flags as bit flags
1415
- v0.6.2 (2025-10-08) (draw) performance improvements
1516
(draw) fix draw 3d plane issues
1617
(draw) add text transforms

docs/version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
v0.6.3 WIP
1+
v0.7.0 WIP
22

33
-----------------------------------------------------------------------------
44
Versioning

examples/example_gfx_0.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ pl_app_load(plApiRegistryI* ptApiRegistry, plAppData* ptAppData)
216216

217217
// create vertex buffer
218218
const plBufferDesc tBufferDesc = {
219-
.tUsage = PL_BUFFER_USAGE_VERTEX,
219+
.tUsage = PL_BUFFER_USAGE_VERTEX | PL_BUFFER_USAGE_TRANSFER_DESTINATION,
220220
.szByteSize = sizeof(float) * PL_ARRAYSIZE(atVertexData),
221221
.pcDebugName = "vertex buffer"
222222
};

examples/example_gfx_1.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ pl_app_load(plApiRegistryI* ptApiRegistry, plAppData* ptAppData)
184184

185185
// create vertex buffer
186186
const plBufferDesc tVertexBufferDesc = {
187-
.tUsage = PL_BUFFER_USAGE_VERTEX,
187+
.tUsage = PL_BUFFER_USAGE_VERTEX | PL_BUFFER_USAGE_TRANSFER_DESTINATION,
188188
.szByteSize = sizeof(float) * PL_ARRAYSIZE(atVertexData),
189189
.pcDebugName = "vertex buffer"
190190
};
@@ -213,7 +213,7 @@ pl_app_load(plApiRegistryI* ptApiRegistry, plAppData* ptAppData)
213213

214214
// create index buffer
215215
const plBufferDesc tIndexBufferDesc = {
216-
.tUsage = PL_BUFFER_USAGE_INDEX,
216+
.tUsage = PL_BUFFER_USAGE_INDEX | PL_BUFFER_USAGE_TRANSFER_DESTINATION,
217217
.szByteSize = sizeof(uint32_t) * PL_ARRAYSIZE(atIndexData),
218218
.pcDebugName = "index buffer"
219219
};
@@ -236,7 +236,7 @@ pl_app_load(plApiRegistryI* ptApiRegistry, plAppData* ptAppData)
236236

237237
// create vertex buffer
238238
const plBufferDesc tStagingBufferDesc = {
239-
.tUsage = PL_BUFFER_USAGE_STAGING,
239+
.tUsage = PL_BUFFER_USAGE_TRANSFER_SOURCE,
240240
.szByteSize = 4096,
241241
.pcDebugName = "staging buffer"
242242
};

examples/example_gfx_2.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ pl_app_load(plApiRegistryI* ptApiRegistry, plAppData* ptAppData)
201201

202202
// create vertex buffer
203203
const plBufferDesc tVertexBufferDesc = {
204-
.tUsage = PL_BUFFER_USAGE_VERTEX,
204+
.tUsage = PL_BUFFER_USAGE_VERTEX | PL_BUFFER_USAGE_TRANSFER_DESTINATION,
205205
.szByteSize = sizeof(float) * PL_ARRAYSIZE(atVertexData),
206206
.pcDebugName = "vertex buffer"
207207
};
@@ -230,7 +230,7 @@ pl_app_load(plApiRegistryI* ptApiRegistry, plAppData* ptAppData)
230230

231231
// create index buffer
232232
const plBufferDesc tIndexBufferDesc = {
233-
.tUsage = PL_BUFFER_USAGE_INDEX,
233+
.tUsage = PL_BUFFER_USAGE_INDEX | PL_BUFFER_USAGE_TRANSFER_DESTINATION,
234234
.szByteSize = sizeof(uint32_t) * PL_ARRAYSIZE(atIndexData),
235235
.pcDebugName = "index buffer"
236236
};
@@ -253,7 +253,7 @@ pl_app_load(plApiRegistryI* ptApiRegistry, plAppData* ptAppData)
253253

254254
// create vertex buffer
255255
const plBufferDesc tStagingBufferDesc = {
256-
.tUsage = PL_BUFFER_USAGE_STAGING,
256+
.tUsage = PL_BUFFER_USAGE_TRANSFER_SOURCE,
257257
.szByteSize = 1280000,
258258
.pcDebugName = "staging buffer"
259259
};

extensions/pl_draw_backend_ext.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,13 @@ pl_initialize_draw_backend(plDevice* ptDevice)
137137

138138
// create initial buffers
139139
const plBufferDesc tIndexBufferDesc = {
140-
.tUsage = PL_BUFFER_USAGE_INDEX | PL_BUFFER_USAGE_STAGING,
140+
.tUsage = PL_BUFFER_USAGE_INDEX,
141141
.szByteSize = 4096,
142142
.pcDebugName = "Draw Ext Idx Buffer"
143143
};
144144

145145
const plBufferDesc tVertexBufferDesc = {
146-
.tUsage = PL_BUFFER_USAGE_VERTEX | PL_BUFFER_USAGE_STAGING,
146+
.tUsage = PL_BUFFER_USAGE_VERTEX,
147147
.szByteSize = 4096,
148148
.pcDebugName = "Draw Ext Vtx Buffer"
149149
};
@@ -329,7 +329,7 @@ pl_build_font_atlas_backend(plCommandBuffer* ptCommandBuffer, plFontAtlas* ptAtl
329329
gptGfx->bind_texture_to_memory(ptDevice, tTexture, &tAllocation);
330330

331331
const plBufferDesc tBufferDesc = {
332-
.tUsage = PL_BUFFER_USAGE_STAGING,
332+
.tUsage = PL_BUFFER_USAGE_TRANSFER_SOURCE,
333333
.szByteSize = (size_t)(ptAtlas->tAtlasSize.x * ptAtlas->tAtlasSize.y * 4),
334334
.pcDebugName = "font staging buffer"
335335
};
@@ -747,7 +747,7 @@ pl_submit_2d_drawlist(plDrawList2D* ptDrawlist, plRenderEncoder* ptEncoder, floa
747747
gptGfx->queue_buffer_for_deletion(ptDevice, ptBufferInfo->tVertexBuffer);
748748

749749
const plBufferDesc tBufferDesc = {
750-
.tUsage = PL_BUFFER_USAGE_VERTEX | PL_BUFFER_USAGE_STAGING,
750+
.tUsage = PL_BUFFER_USAGE_VERTEX,
751751
.szByteSize = pl_max(ptBufferInfo->uVertexBufferSize * 2, uVtxBufSzNeeded + uAvailableVertexBufferSpace),
752752
.pcDebugName = "2D Draw Vertex Buffer"
753753
};
@@ -777,7 +777,7 @@ pl_submit_2d_drawlist(plDrawList2D* ptDrawlist, plRenderEncoder* ptEncoder, floa
777777
gptGfx->queue_buffer_for_deletion(ptDevice, gptDrawBackendCtx->atIndexBuffer[uFrameIdx]);
778778

779779
const plBufferDesc tBufferDesc = {
780-
.tUsage = PL_BUFFER_USAGE_INDEX | PL_BUFFER_USAGE_STAGING,
780+
.tUsage = PL_BUFFER_USAGE_INDEX,
781781
.szByteSize = pl_max(gptDrawBackendCtx->auIndexBufferSize[uFrameIdx] * 2, uIdxBufSzNeeded + uAvailableIndexBufferSpace),
782782
.pcDebugName = "Draw Index Buffer"
783783
};
@@ -976,7 +976,7 @@ pl_submit_3d_drawlist(plDrawList3D* ptDrawlist, plRenderEncoder* ptEncoder, floa
976976
gptGfx->queue_buffer_for_deletion(ptDevice, ptBufferInfo->tVertexBuffer);
977977

978978
const plBufferDesc tBufferDesc = {
979-
.tUsage = PL_BUFFER_USAGE_VERTEX | PL_BUFFER_USAGE_STAGING,
979+
.tUsage = PL_BUFFER_USAGE_VERTEX,
980980
.szByteSize = pl_max(ptBufferInfo->uVertexBufferSize * 2, uVtxBufSzNeeded + uAvailableVertexBufferSpace),
981981
.pcDebugName = "3D Draw Vertex Buffer"
982982
};
@@ -1004,7 +1004,7 @@ pl_submit_3d_drawlist(plDrawList3D* ptDrawlist, plRenderEncoder* ptEncoder, floa
10041004
gptGfx->queue_buffer_for_deletion(gptDrawBackendCtx->ptDevice, gptDrawBackendCtx->atIndexBuffer[uFrameIdx]);
10051005

10061006
const plBufferDesc tBufferDesc = {
1007-
.tUsage = PL_BUFFER_USAGE_INDEX | PL_BUFFER_USAGE_STAGING,
1007+
.tUsage = PL_BUFFER_USAGE_INDEX,
10081008
.szByteSize = pl_max(gptDrawBackendCtx->auIndexBufferSize[uFrameIdx] * 2, uIdxBufSzNeeded + uAvailableIndexBufferSpace),
10091009
.pcDebugName = "Draw Index Buffer"
10101010
};
@@ -1066,7 +1066,7 @@ pl_submit_3d_drawlist(plDrawList3D* ptDrawlist, plRenderEncoder* ptEncoder, floa
10661066
gptGfx->queue_buffer_for_deletion(ptDevice, ptBufferInfo->tVertexBuffer);
10671067

10681068
const plBufferDesc tBufferDesc = {
1069-
.tUsage = PL_BUFFER_USAGE_VERTEX | PL_BUFFER_USAGE_STAGING,
1069+
.tUsage = PL_BUFFER_USAGE_VERTEX,
10701070
.szByteSize = pl_max(ptBufferInfo->uVertexBufferSize * 2, uVtxBufSzNeeded + uAvailableVertexBufferSpace),
10711071
.pcDebugName = "3D Lines Vertex Buffer"
10721072
};
@@ -1095,7 +1095,7 @@ pl_submit_3d_drawlist(plDrawList3D* ptDrawlist, plRenderEncoder* ptEncoder, floa
10951095
gptGfx->queue_buffer_for_deletion(ptDevice, gptDrawBackendCtx->atIndexBuffer[uFrameIdx]);
10961096

10971097
const plBufferDesc tBufferDesc = {
1098-
.tUsage = PL_BUFFER_USAGE_INDEX | PL_BUFFER_USAGE_STAGING,
1098+
.tUsage = PL_BUFFER_USAGE_INDEX,
10991099
.szByteSize = pl_max(gptDrawBackendCtx->auIndexBufferSize[uFrameIdx] * 2, uIdxBufSzNeeded + uAvailableIndexBufferSpace),
11001100
.pcDebugName = "Draw Index Buffer"
11011101
};

extensions/pl_graphics_ext.h

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ Index of this file:
114114
// [SECTION] apis
115115
//-----------------------------------------------------------------------------
116116

117-
#define plGraphicsI_version {1, 5, 2}
117+
#define plGraphicsI_version {1, 6, 0}
118118

119119
//-----------------------------------------------------------------------------
120120
// [SECTION] includes
@@ -1361,12 +1361,18 @@ enum _plTextureUsage
13611361

13621362
enum _plBufferUsage
13631363
{
1364-
PL_BUFFER_USAGE_UNSPECIFIED,
1365-
PL_BUFFER_USAGE_INDEX,
1366-
PL_BUFFER_USAGE_VERTEX,
1367-
PL_BUFFER_USAGE_UNIFORM,
1368-
PL_BUFFER_USAGE_STORAGE,
1369-
PL_BUFFER_USAGE_STAGING,
1364+
PL_BUFFER_USAGE_UNSPECIFIED = 0,
1365+
PL_BUFFER_USAGE_INDEX = 1 << 0,
1366+
PL_BUFFER_USAGE_VERTEX = 1 << 1,
1367+
PL_BUFFER_USAGE_UNIFORM = 1 << 2,
1368+
PL_BUFFER_USAGE_STORAGE = 1 << 3,
1369+
PL_BUFFER_USAGE_TRANSFER_SOURCE = 1 << 4,
1370+
PL_BUFFER_USAGE_TRANSFER_DESTINATION = 1 << 5,
1371+
1372+
// [OBSOLETE]
1373+
#ifndef PL_DISABLE_OBSOLETE
1374+
PL_BUFFER_USAGE_STAGING = PL_BUFFER_USAGE_TRANSFER_SOURCE | PL_BUFFER_USAGE_TRANSFER_DESTINATION
1375+
#endif
13701376
};
13711377

13721378
enum _plVendorId

extensions/pl_graphics_metal.m

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,11 @@
798798
ptBuffer->tDesc.pcDebugName = "unnamed buffer";
799799

800800
MTLResourceOptions tStorageMode = MTLResourceStorageModePrivate;
801-
if(ptDesc->tUsage & PL_BUFFER_USAGE_STAGING)
801+
if(ptDesc->tUsage & PL_BUFFER_USAGE_TRANSFER_SOURCE)
802+
{
803+
tStorageMode = MTLResourceStorageModeShared;
804+
}
805+
else if(ptDesc->tUsage & PL_BUFFER_USAGE_TRANSFER_DESTINATION)
802806
{
803807
tStorageMode = MTLResourceStorageModeShared;
804808
}

extensions/pl_graphics_vulkan.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -546,15 +546,17 @@ pl_create_buffer(plDevice* ptDevice, const plBufferDesc* ptDesc, plBuffer **ptBu
546546

547547
VkBufferUsageFlagBits tBufferUsageFlags = 0;
548548
if (ptDesc->tUsage & PL_BUFFER_USAGE_VERTEX)
549-
tBufferInfo.usage |= VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
549+
tBufferInfo.usage |= VK_BUFFER_USAGE_VERTEX_BUFFER_BIT;
550550
if (ptDesc->tUsage & PL_BUFFER_USAGE_INDEX)
551-
tBufferInfo.usage |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
551+
tBufferInfo.usage |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT;
552552
if (ptDesc->tUsage & PL_BUFFER_USAGE_STORAGE)
553-
tBufferInfo.usage |= VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
553+
tBufferInfo.usage |= VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
554554
if (ptDesc->tUsage & PL_BUFFER_USAGE_UNIFORM)
555-
tBufferInfo.usage |= VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
556-
if (ptDesc->tUsage & PL_BUFFER_USAGE_STAGING)
557-
tBufferInfo.usage |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
555+
tBufferInfo.usage |= VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
556+
if (ptDesc->tUsage & PL_BUFFER_USAGE_TRANSFER_SOURCE)
557+
tBufferInfo.usage |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
558+
if (ptDesc->tUsage & PL_BUFFER_USAGE_TRANSFER_DESTINATION)
559+
tBufferInfo.usage |= VK_BUFFER_USAGE_TRANSFER_DST_BIT;
558560

559561
VkMemoryRequirements tMemRequirements = {0};
560562

@@ -3521,7 +3523,7 @@ pl_create_device(const plDeviceInit* ptInit)
35213523
// dynamic buffer stuff
35223524
pl_sb_resize(tFrame.sbtDynamicBuffers, 1);
35233525
plBufferDesc tStagingBufferDescription0 = {
3524-
.tUsage = PL_BUFFER_USAGE_UNIFORM | PL_BUFFER_USAGE_STAGING,
3526+
.tUsage = PL_BUFFER_USAGE_UNIFORM,
35253527
.szByteSize = ptDevice->tInit.szDynamicBufferBlockSize,
35263528
.pcDebugName = "dynamic buffer"
35273529
};

extensions/pl_renderer_ext.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -675,25 +675,25 @@ pl_renderer_create_scene(plSceneInit tInit)
675675

676676
// pre-create some global buffers, later we should defer this
677677
const plBufferDesc atLightShadowDataBufferDesc = {
678-
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_STAGING,
678+
.tUsage = PL_BUFFER_USAGE_STORAGE,
679679
.szByteSize = PL_MAX_LIGHTS * sizeof(plGpuLightShadow),
680680
.pcDebugName = "shadow data buffer"
681681
};
682682

683683
const plBufferDesc atCameraBuffersDesc = {
684-
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_STAGING,
684+
.tUsage = PL_BUFFER_USAGE_STORAGE,
685685
.szByteSize = 4096,
686686
.pcDebugName = "camera buffers"
687687
};
688688

689689
const plBufferDesc atProbeDataBufferDesc = {
690-
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_STAGING,
690+
.tUsage = PL_BUFFER_USAGE_STORAGE,
691691
.szByteSize = 4096,
692692
.pcDebugName = "probe buffers"
693693
};
694694

695695
const plBufferDesc tSceneBufferDesc = {
696-
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_STAGING,
696+
.tUsage = PL_BUFFER_USAGE_STORAGE,
697697
.szByteSize = sizeof(plGpuSceneData),
698698
.pcDebugName = "scene buffer"
699699
};
@@ -745,7 +745,7 @@ pl_renderer_create_scene(plSceneInit tInit)
745745
const size_t uMaxFaceSize = ((size_t)1024 * (size_t)1024) * 4 * sizeof(float);
746746

747747
const plBufferDesc tInputBufferDesc = {
748-
.tUsage = PL_BUFFER_USAGE_STORAGE,
748+
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_TRANSFER_SOURCE,
749749
.szByteSize = uMaxFaceSize,
750750
.pcDebugName = "filter buffers"
751751
};
@@ -1255,25 +1255,25 @@ pl_renderer_create_view(plScene* ptScene, plVec2 tDimensions)
12551255
};
12561256

12571257
const plBufferDesc atView2BuffersDesc = {
1258-
.tUsage = PL_BUFFER_USAGE_UNIFORM | PL_BUFFER_USAGE_STAGING,
1258+
.tUsage = PL_BUFFER_USAGE_STORAGE,
12591259
.szByteSize = 4096,
12601260
.pcDebugName = "view buffer"
12611261
};
12621262

12631263
const plBufferDesc atCameraBuffersDesc = {
1264-
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_STAGING,
1264+
.tUsage = PL_BUFFER_USAGE_STORAGE,
12651265
.szByteSize = 4096,
12661266
.pcDebugName = "camera buffers"
12671267
};
12681268

12691269
const plBufferDesc atLightShadowDataBufferDesc = {
1270-
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_STAGING,
1270+
.tUsage = PL_BUFFER_USAGE_STORAGE,
12711271
.szByteSize = PL_MAX_LIGHTS * sizeof(plGpuLightShadow),
12721272
.pcDebugName = "shadow data buffer"
12731273
};
12741274

12751275
const plBufferDesc atViewBuffersDesc = {
1276-
.tUsage = PL_BUFFER_USAGE_UNIFORM | PL_BUFFER_USAGE_STAGING,
1276+
.tUsage = PL_BUFFER_USAGE_UNIFORM,
12771277
.szByteSize = sizeof(plGpuViewData),
12781278
.pcDebugName = "view buffer"
12791279
};
@@ -1392,7 +1392,7 @@ pl_renderer_create_view(plScene* ptScene, plVec2 tDimensions)
13921392
for(uint32_t i = 0; i < gptGfx->get_frames_in_flight(); i++)
13931393
{
13941394
const plBufferDesc tPickBufferDesc = {
1395-
.tUsage = PL_BUFFER_USAGE_STAGING | PL_BUFFER_USAGE_STORAGE,
1395+
.tUsage = PL_BUFFER_USAGE_STORAGE,
13961396
.szByteSize = sizeof(uint32_t) * 2,
13971397
.pcDebugName = "Picking buffer"
13981398
};
@@ -1977,7 +1977,7 @@ pl_renderer_load_skybox_from_panorama(plScene* ptScene, const char* pcPath, int
19771977
plBufferHandle atComputeBuffers[7] = {0};
19781978
const uint32_t uPanoramaSize = iPanoramaHeight * iPanoramaWidth * 4 * sizeof(float);
19791979
const plBufferDesc tInputBufferDesc = {
1980-
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_STAGING,
1980+
.tUsage = PL_BUFFER_USAGE_STORAGE,
19811981
.szByteSize = uPanoramaSize,
19821982
.pcDebugName = "panorama input buffer"
19831983
};
@@ -1988,7 +1988,7 @@ pl_renderer_load_skybox_from_panorama(plScene* ptScene, const char* pcPath, int
19881988
gptImage->free(pfPanoramaData);
19891989

19901990
const plBufferDesc tOutputBufferDesc = {
1991-
.tUsage = PL_BUFFER_USAGE_STORAGE,
1991+
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_TRANSFER_SOURCE,
19921992
.szByteSize = uFaceSize,
19931993
.pcDebugName = "panorama output buffer"
19941994
};
@@ -2408,7 +2408,7 @@ pl_renderer_finalize_scene(plScene* ptScene)
24082408
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~GPU Buffers~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24092409

24102410
const plBufferDesc tMaterialDataBufferDesc = {
2411-
.tUsage = PL_BUFFER_USAGE_STORAGE,
2411+
.tUsage = PL_BUFFER_USAGE_STORAGE | PL_BUFFER_USAGE_TRANSFER_DESTINATION,
24122412
.szByteSize = sizeof(plGpuMaterial) * ptScene->uGPUMaterialBufferCapacity,
24132413
.pcDebugName = "material buffer"
24142414
};
@@ -4483,7 +4483,7 @@ pl_renderer_begin_frame(void)
44834483
if(!gptGfx->is_buffer_valid(ptDevice, tStagingBuffer))
44844484
{
44854485
const plBufferDesc tStagingBufferDesc = {
4486-
.tUsage = PL_BUFFER_USAGE_STAGING,
4486+
.tUsage = PL_BUFFER_USAGE_TRANSFER_SOURCE,
44874487
.szByteSize = 268435456,
44884488
.pcDebugName = "Renderer Staging Buffer"
44894489
};

0 commit comments

Comments
 (0)