MCPcopy Create free account
hub / github.com/InoriRus/Kyty / GetDescriptorSetLayout

Method GetDescriptorSetLayout

source/emulator/src/Graphics/GraphicsRender.cpp:3507–3540  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3505}
3506
3507VkDescriptorSetLayout DescriptorCache::GetDescriptorSetLayout(Stage stage, const ShaderBindResources& bind)
3508{
3509 int storage_buffers_num = bind.storage_buffers.buffers_num;
3510 int textures2d_sampled_num = bind.textures2D.textures2d_sampled_num;
3511 int textures2d_storage_num = bind.textures2D.textures2d_storage_num;
3512 int samplers_num = bind.samplers.samplers_num;
3513 int gds_buffers_num = bind.gds_pointers.pointers_num;
3514
3515 EXIT_IF(storage_buffers_num < 0 || storage_buffers_num > BUFFERS_MAX);
3516 EXIT_IF(textures2d_sampled_num < 0 || textures2d_sampled_num > TEXTURES_SAMPLED_MAX);
3517 EXIT_IF(textures2d_storage_num < 0 || textures2d_storage_num > TEXTURES_STORAGE_MAX);
3518 EXIT_IF(samplers_num < 0 || samplers_num > SAMPLERS_MAX);
3519 EXIT_IF(gds_buffers_num < 0 || gds_buffers_num > GDS_BUFFER_MAX);
3520
3521 EXIT_NOT_IMPLEMENTED(stage != Stage::Pixel && stage != Stage::Compute &&
3522 (textures2d_sampled_num > 0 || textures2d_storage_num > 0 || samplers_num > 0));
3523
3524 Core::LockGuard lock(m_mutex);
3525 Init();
3526 switch (stage)
3527 {
3528 case Stage::Vertex:
3529 return m_descriptor_set_layout_vertex[storage_buffers_num][textures2d_sampled_num][textures2d_storage_num][samplers_num]
3530 [gds_buffers_num];
3531 case Stage::Pixel:
3532 return m_descriptor_set_layout_pixel[storage_buffers_num][textures2d_sampled_num][textures2d_storage_num][samplers_num]
3533 [gds_buffers_num];
3534 case Stage::Compute:
3535 return m_descriptor_set_layout_compute[storage_buffers_num][textures2d_sampled_num][textures2d_storage_num][samplers_num]
3536 [gds_buffers_num];
3537 default: EXIT("unknown stage\n");
3538 }
3539 return nullptr;
3540}
3541
3542void DeleteFramebuffer(VideoOutVulkanImage* image)
3543{

Callers 1

CreateLayoutFunction · 0.80

Calls 1

InitFunction · 0.70

Tested by

no test coverage detected