Skip to content

Commit b08b3f9

Browse files
committed
WIP cube
WIP cube 2 WIP
1 parent c1c2b84 commit b08b3f9

File tree

11 files changed

+233
-268
lines changed

11 files changed

+233
-268
lines changed

extensions/pl_graphics_ext.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,6 @@ pl__cleanup_common_device(plDevice* ptDevice)
346346
pl_sb_free(ptDevice->sbtBufferFreeIndices);
347347
pl_sb_free(ptDevice->sbtTexturesCold);
348348
pl_sb_free(ptDevice->sbtSamplersCold);
349-
pl_sb_free(ptDevice->sbtBindGroupsCold);
350349
pl_sb_free(ptDevice->sbtRenderPassesCold);
351350
pl_sb_free(ptDevice->sbtTextureFreeIndices);
352351
pl_sb_free(ptDevice->sbtRenderPassLayoutsCold);
@@ -357,6 +356,12 @@ pl__cleanup_common_device(plDevice* ptDevice)
357356
pl_sb_free(ptDevice->sbtRenderPassLayoutFreeIndices);
358357
pl_sb_free(ptDevice->sbtRenderPassFreeIndices);
359358

359+
for(uint32_t i = 0; i < pl_sb_size(ptDevice->sbtBindGroupsCold); i++)
360+
{
361+
pl_sb_free(ptDevice->sbtBindGroupsCold[i]._sbtTextures);
362+
}
363+
pl_sb_free(ptDevice->sbtBindGroupsCold);
364+
360365
plTimelineSemaphore* ptCurrentSemaphore = ptDevice->ptSemaphoreFreeList;
361366
while(ptCurrentSemaphore)
362367
{

extensions/pl_graphics_ext.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ typedef struct _plTextureViewDesc
464464
uint32_t uBaseLayer;
465465
uint32_t uLayerCount;
466466
plTextureHandle tTexture;
467+
plTextureType tType;
467468
const char* pcDebugName; // default: "unnamed texture view"
468469
} plTextureViewDesc;
469470

extensions/pl_graphics_metal.m

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1054,6 +1054,7 @@
10541054
ptNewTexture->tView = *ptViewDesc;
10551055
ptNewTexture->tDesc.uMips = ptViewDesc->uMips;
10561056
ptNewTexture->tDesc.uLayers = ptViewDesc->uLayerCount;
1057+
ptNewTexture->tDesc.tType = ptViewDesc->tType;
10571058
ptNewTexture->tView.uBaseMip = 0;
10581059
ptNewTexture->tView.uBaseLayer = 0;
10591060

@@ -1105,7 +1106,9 @@
11051106
levels:tLevelRange
11061107
slices:tSliceRange];
11071108

1108-
ptNewMetalTexture->tTexture.label = [NSString stringWithUTF8String:ptViewDesc->pcDebugName];
1109+
if(ptNewTexture->tView.pcDebugName == NULL)
1110+
ptNewTexture->tView.pcDebugName = "unnamed texture";
1111+
ptNewMetalTexture->tTexture.label = [NSString stringWithUTF8String:ptNewTexture->tView.pcDebugName];
11091112
ptNewMetalTexture->uHeap = ptOldMetalTexture->uHeap;
11101113
return tHandle;
11111114
}
@@ -2689,6 +2692,7 @@
26892692
pl_sb_free(ptDevice->sbtRenderPassesHot[i].atRenderPassDescriptors[j].sbptRenderPassDescriptor);
26902693
}
26912694
}
2695+
pl_sb_free(ptDevice->sbuFreeHeaps);
26922696
pl_sb_free(ptDevice->sbtTexturesHot);
26932697
pl_sb_free(ptDevice->sbtSamplersHot);
26942698
pl_sb_free(ptDevice->sbtBindGroupsHot);

extensions/pl_graphics_vulkan.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,18 +1265,19 @@ pl_create_texture_view(plDevice* ptDevice, const plTextureViewDesc* ptViewDesc)
12651265
plTexture* ptOriginalTexture = pl__get_texture(ptDevice, ptViewDesc->tTexture);
12661266
plTexture* ptNewTexture = pl__get_texture(ptDevice, ptViewDesc->tTexture);
12671267
ptNewTexture->tDesc = ptOriginalTexture->tDesc;
1268+
ptNewTexture->tDesc.tType = ptViewDesc->tType;
12681269
ptNewTexture->tView = *ptViewDesc;
12691270
plVulkanTexture* ptOldVulkanTexture = &ptDevice->sbtTexturesHot[ptViewDesc->tTexture.uIndex];
12701271
plVulkanTexture* ptNewVulkanTexture = &ptDevice->sbtTexturesHot[tHandle.uIndex];
12711272

12721273
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~create view~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12731274

12741275
VkImageViewType tImageViewType = 0;
1275-
if (ptOriginalTexture->tDesc.tType == PL_TEXTURE_TYPE_CUBE)
1276+
if (ptNewTexture->tDesc.tType == PL_TEXTURE_TYPE_CUBE)
12761277
tImageViewType = VK_IMAGE_VIEW_TYPE_CUBE;
1277-
else if (ptOriginalTexture->tDesc.tType == PL_TEXTURE_TYPE_2D)
1278+
else if (ptNewTexture->tDesc.tType == PL_TEXTURE_TYPE_2D)
12781279
tImageViewType = VK_IMAGE_VIEW_TYPE_2D;
1279-
else if (ptOriginalTexture->tDesc.tType == PL_TEXTURE_TYPE_2D_ARRAY)
1280+
else if (ptNewTexture->tDesc.tType == PL_TEXTURE_TYPE_2D_ARRAY)
12801281
tImageViewType = VK_IMAGE_VIEW_TYPE_2D; // VK_IMAGE_VIEW_TYPE_2D_ARRAY;
12811282
else
12821283
{
@@ -4329,7 +4330,7 @@ pl__fill_common_render_pass_data(plRenderPassLayoutDesc* ptDesc, plRenderPassLay
43294330
.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
43304331
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
43314332
.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
4332-
.dependencyFlags = 0
4333+
.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT
43334334
};
43344335

43354336
ptDataOut->atSubpassDependencies[1] = (VkSubpassDependency){

extensions/pl_renderer_ext.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1904,7 +1904,7 @@ pl_refr_reload_scene_shaders(uint32_t uSceneHandle)
19041904

19051905
pl_refr_create_global_shaders();
19061906

1907-
int iSceneWideRenderingFlags = 0;
1907+
int iSceneWideRenderingFlags = PL_RENDERING_FLAG_SHADOWS;
19081908
if(gptData->bPunctualLighting)
19091909
iSceneWideRenderingFlags |= PL_RENDERING_FLAG_USE_PUNCTUAL;
19101910
if(gptData->bImageBasedLighting)
@@ -1998,7 +1998,7 @@ pl_refr_reload_scene_shaders(uint32_t uSceneHandle)
19981998
tLightingShaderDesc.atConstants[i].tType = PL_DATA_TYPE_INT;
19991999
}
20002000
ptScene->tLightingShader = gptGfx->create_shader(gptData->ptDevice, &tLightingShaderDesc);
2001-
aiLightingConstantData[0] = gptData->bPunctualLighting ? PL_RENDERING_FLAG_USE_PUNCTUAL : 0;
2001+
aiLightingConstantData[0] = gptData->bPunctualLighting ? (PL_RENDERING_FLAG_USE_PUNCTUAL | PL_RENDERING_FLAG_SHADOWS) : 0;
20022002
ptScene->tEnvLightingShader = gptGfx->create_shader(gptData->ptDevice, &tLightingShaderDesc);
20032003
}
20042004

@@ -2201,7 +2201,7 @@ pl_refr_finalize_scene(uint32_t uSceneHandle)
22012201
gptGfx->update_bind_group(gptData->ptDevice, ptScene->tSkinBindGroup0, &tBGData0);
22022202
}
22032203

2204-
int iSceneWideRenderingFlags = 0;
2204+
int iSceneWideRenderingFlags = PL_RENDERING_FLAG_SHADOWS;
22052205
if(gptData->bPunctualLighting)
22062206
iSceneWideRenderingFlags |= PL_RENDERING_FLAG_USE_PUNCTUAL;
22072207
if(gptData->bImageBasedLighting)
@@ -2293,7 +2293,7 @@ pl_refr_finalize_scene(uint32_t uSceneHandle)
22932293
tLightingShaderDesc.atConstants[i].tType = PL_DATA_TYPE_INT;
22942294
}
22952295
ptScene->tLightingShader = gptGfx->create_shader(gptData->ptDevice, &tLightingShaderDesc);
2296-
aiLightingConstantData[0] = gptData->bPunctualLighting ? PL_RENDERING_FLAG_USE_PUNCTUAL : 0;
2296+
aiLightingConstantData[0] = gptData->bPunctualLighting ? (PL_RENDERING_FLAG_USE_PUNCTUAL | PL_RENDERING_FLAG_SHADOWS) : 0;
22972297
ptScene->tEnvLightingShader = gptGfx->create_shader(gptData->ptDevice, &tLightingShaderDesc);
22982298
}
22992299

0 commit comments

Comments
 (0)