android port
This commit is contained in:
@@ -70,6 +70,7 @@ void CVkShader::Build()
|
||||
VkGraphicsPipelineCreateInfo createInfo = {};
|
||||
CUtlVector<VkPipelineShaderStageCreateInfo> stages = {};
|
||||
CUtlVector<VkShaderModuleCreateInfo> modules = {};
|
||||
CUtlVector<VkShaderModule> sms = {};
|
||||
VkPipelineVertexInputStateCreateInfo vertexInput = {};
|
||||
VkPipelineInputAssemblyStateCreateInfo inputAssembly = {};
|
||||
VkPipelineDynamicStateCreateInfo dynamicState = {};
|
||||
@@ -91,6 +92,7 @@ void CVkShader::Build()
|
||||
// TODO: Filter by vulkan shaders at some points
|
||||
stages.Resize(m_shader.m_objects.GetSize());
|
||||
modules.Resize(m_shader.m_objects.GetSize());
|
||||
sms.Resize(m_shader.m_objects.GetSize());
|
||||
for ( int i = 0; i < m_shader.m_objects.GetSize(); i++ )
|
||||
{
|
||||
VulkanInputMetaData_t *pMetaData = (VulkanInputMetaData_t*)m_shader.GetLumpPtr(m_shader.m_objects[i].m_nMetadataLump);
|
||||
@@ -127,11 +129,21 @@ void CVkShader::Build()
|
||||
bindings[stDescriptor.uSet].AppendTail(bind);
|
||||
m_bindings.AppendTail(stDescriptor);
|
||||
}
|
||||
modules[i] = {};
|
||||
modules[i].sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
|
||||
modules[i].pCode = (uint32_t*)m_shader.GetLumpPtr(m_shader.m_objects[i].m_nDataLump);
|
||||
modules[i].codeSize = m_shader.GetLumpSize(m_shader.m_objects[i].m_nDataLump);
|
||||
if (!g_vkAvailableExtensions.bIsSupported_VK_KHR_MAINTENANCE_5)
|
||||
{
|
||||
VkResult r = vkCreateShaderModule(m_hDevice, &modules[i], NULL, &sms[i]);
|
||||
VULKAN_RESULT_PRINT(r, vkCreateShaderModule);
|
||||
}
|
||||
stages[i] = {};
|
||||
stages[i].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
|
||||
stages[i].pNext = &modules[i];
|
||||
if (g_vkAvailableExtensions.bIsSupported_VK_KHR_MAINTENANCE_5)
|
||||
stages[i].pNext = &modules[i];
|
||||
else
|
||||
stages[i].module = sms[i];
|
||||
stages[i].pName = "main";
|
||||
stages[i].stage = VulkanGetShaderStage(m_shader.m_objects[i].m_eStage);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user