1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-21 22:54:16 +01:00

[dxvk] Clean up more code around object creation in meta passes

This commit is contained in:
Philip Rebohle 2022-07-18 14:50:29 +02:00
parent fc461d0e27
commit 37f31ae1e7
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
6 changed files with 30 additions and 135 deletions

View File

@ -74,15 +74,10 @@ namespace dxvk {
VK_IMAGE_VIEW_TYPE_2D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY,
}}; }};
VkImageViewUsageCreateInfo usageInfo; VkImageViewUsageCreateInfo usageInfo = { VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO };
usageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
usageInfo.pNext = nullptr;
usageInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; usageInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
VkImageViewCreateInfo info; VkImageViewCreateInfo info = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, &usageInfo };
info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
info.pNext = &usageInfo;
info.flags = 0;
info.image = m_dstImage->handle(); info.image = m_dstImage->handle();
info.viewType = viewTypes.at(uint32_t(m_dstImage->info().type)); info.viewType = viewTypes.at(uint32_t(m_dstImage->info().type));
info.format = m_dstImage->info().format; info.format = m_dstImage->info().format;
@ -102,15 +97,10 @@ namespace dxvk {
VkImageView DxvkMetaBlitRenderPass::createSrcView(const VkComponentMapping& mapping) { VkImageView DxvkMetaBlitRenderPass::createSrcView(const VkComponentMapping& mapping) {
VkImageViewUsageCreateInfo usageInfo; VkImageViewUsageCreateInfo usageInfo = { VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO };
usageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
usageInfo.pNext = nullptr;
usageInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT; usageInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT;
VkImageViewCreateInfo info; VkImageViewCreateInfo info = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, &usageInfo };
info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
info.pNext = &usageInfo;
info.flags = 0;
info.image = m_srcImage->handle(); info.image = m_srcImage->handle();
info.viewType = this->viewType(); info.viewType = this->viewType();
info.format = m_srcImage->info().format; info.format = m_srcImage->info().format;
@ -189,25 +179,14 @@ namespace dxvk {
VkSampler DxvkMetaBlitObjects::createSampler(VkFilter filter) const { VkSampler DxvkMetaBlitObjects::createSampler(VkFilter filter) const {
VkSamplerCreateInfo info; VkSamplerCreateInfo info = { VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO };
info.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
info.pNext = nullptr;
info.flags = 0;
info.magFilter = filter; info.magFilter = filter;
info.minFilter = filter; info.minFilter = filter;
info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
info.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.mipLodBias = 0.0f;
info.anisotropyEnable = VK_FALSE;
info.maxAnisotropy = 1.0f;
info.compareEnable = VK_FALSE;
info.compareOp = VK_COMPARE_OP_ALWAYS;
info.minLod = 0.0f;
info.maxLod = 0.0f;
info.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK; info.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
info.unnormalizedCoordinates = VK_FALSE;
VkSampler result = VK_NULL_HANDLE; VkSampler result = VK_NULL_HANDLE;
if (m_vkd->vkCreateSampler(m_vkd->device(), &info, nullptr, &result) != VK_SUCCESS) if (m_vkd->vkCreateSampler(m_vkd->device(), &info, nullptr, &result) != VK_SUCCESS)
@ -217,10 +196,7 @@ namespace dxvk {
VkShaderModule DxvkMetaBlitObjects::createShaderModule(const SpirvCodeBuffer& code) const { VkShaderModule DxvkMetaBlitObjects::createShaderModule(const SpirvCodeBuffer& code) const {
VkShaderModuleCreateInfo info; VkShaderModuleCreateInfo info = { VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO };
info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
info.pNext = nullptr;
info.flags = 0;
info.codeSize = code.size(); info.codeSize = code.size();
info.pCode = code.data(); info.pCode = code.data();

View File

@ -116,17 +116,9 @@ namespace dxvk {
VkDescriptorSetLayout DxvkMetaClearObjects::createDescriptorSetLayout( VkDescriptorSetLayout DxvkMetaClearObjects::createDescriptorSetLayout(
VkDescriptorType descriptorType) { VkDescriptorType descriptorType) {
VkDescriptorSetLayoutBinding bindInfo; VkDescriptorSetLayoutBinding bindInfo = { 0, descriptorType, 1, VK_SHADER_STAGE_COMPUTE_BIT };
bindInfo.binding = 0;
bindInfo.descriptorType = descriptorType;
bindInfo.descriptorCount = 1;
bindInfo.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
bindInfo.pImmutableSamplers = nullptr;
VkDescriptorSetLayoutCreateInfo dsetInfo; VkDescriptorSetLayoutCreateInfo dsetInfo = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO };
dsetInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
dsetInfo.pNext = nullptr;
dsetInfo.flags = 0;
dsetInfo.bindingCount = 1; dsetInfo.bindingCount = 1;
dsetInfo.pBindings = &bindInfo; dsetInfo.pBindings = &bindInfo;
@ -140,17 +132,11 @@ namespace dxvk {
VkPipelineLayout DxvkMetaClearObjects::createPipelineLayout( VkPipelineLayout DxvkMetaClearObjects::createPipelineLayout(
VkDescriptorSetLayout dsetLayout) { VkDescriptorSetLayout dsetLayout) {
VkPushConstantRange pushInfo; VkPushConstantRange pushInfo = { VK_SHADER_STAGE_COMPUTE_BIT, 0, uint32_t(sizeof(DxvkMetaClearArgs)) };
pushInfo.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
pushInfo.offset = 0;
pushInfo.size = sizeof(DxvkMetaClearArgs);
VkPipelineLayoutCreateInfo pipeInfo; VkPipelineLayoutCreateInfo pipeInfo = { VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO };
pipeInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO; pipeInfo.setLayoutCount = 1;
pipeInfo.pNext = nullptr; pipeInfo.pSetLayouts = &dsetLayout;
pipeInfo.flags = 0;
pipeInfo.setLayoutCount = 1;
pipeInfo.pSetLayouts = &dsetLayout;
pipeInfo.pushConstantRangeCount = 1; pipeInfo.pushConstantRangeCount = 1;
pipeInfo.pPushConstantRanges = &pushInfo; pipeInfo.pPushConstantRanges = &pushInfo;
@ -165,10 +151,7 @@ namespace dxvk {
VkPipeline DxvkMetaClearObjects::createPipeline( VkPipeline DxvkMetaClearObjects::createPipeline(
const SpirvCodeBuffer& spirvCode, const SpirvCodeBuffer& spirvCode,
VkPipelineLayout pipeLayout) { VkPipelineLayout pipeLayout) {
VkShaderModuleCreateInfo shaderInfo; VkShaderModuleCreateInfo shaderInfo = { VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO };
shaderInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
shaderInfo.pNext = nullptr;
shaderInfo.flags = 0;
shaderInfo.codeSize = spirvCode.size(); shaderInfo.codeSize = spirvCode.size();
shaderInfo.pCode = spirvCode.data(); shaderInfo.pCode = spirvCode.data();
@ -177,22 +160,15 @@ namespace dxvk {
&shaderInfo, nullptr, &shaderModule) != VK_SUCCESS) &shaderInfo, nullptr, &shaderModule) != VK_SUCCESS)
throw DxvkError("Dxvk: Failed to create meta clear shader module"); throw DxvkError("Dxvk: Failed to create meta clear shader module");
VkPipelineShaderStageCreateInfo stageInfo; VkPipelineShaderStageCreateInfo stageInfo = { VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO };
stageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
stageInfo.pNext = nullptr;
stageInfo.flags = 0;
stageInfo.stage = VK_SHADER_STAGE_COMPUTE_BIT; stageInfo.stage = VK_SHADER_STAGE_COMPUTE_BIT;
stageInfo.module = shaderModule; stageInfo.module = shaderModule;
stageInfo.pName = "main"; stageInfo.pName = "main";
stageInfo.pSpecializationInfo = nullptr; stageInfo.pSpecializationInfo = nullptr;
VkComputePipelineCreateInfo pipeInfo; VkComputePipelineCreateInfo pipeInfo = { VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO };
pipeInfo.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
pipeInfo.pNext = nullptr;
pipeInfo.flags = 0;
pipeInfo.stage = stageInfo; pipeInfo.stage = stageInfo;
pipeInfo.layout = pipeLayout; pipeInfo.layout = pipeLayout;
pipeInfo.basePipelineHandle = VK_NULL_HANDLE;
pipeInfo.basePipelineIndex = -1; pipeInfo.basePipelineIndex = -1;
VkPipeline result = VK_NULL_HANDLE; VkPipeline result = VK_NULL_HANDLE;

View File

@ -192,10 +192,7 @@ namespace dxvk {
VkShaderModule DxvkMetaCopyObjects::createShaderModule( VkShaderModule DxvkMetaCopyObjects::createShaderModule(
const SpirvCodeBuffer& code) const { const SpirvCodeBuffer& code) const {
VkShaderModuleCreateInfo info; VkShaderModuleCreateInfo info = { VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO };
info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
info.pNext = nullptr;
info.flags = 0;
info.codeSize = code.size(); info.codeSize = code.size();
info.pCode = code.data(); info.pCode = code.data();

View File

@ -92,23 +92,13 @@ namespace dxvk {
VkSampler DxvkMetaPackObjects::createSampler() { VkSampler DxvkMetaPackObjects::createSampler() {
VkSamplerCreateInfo info; VkSamplerCreateInfo info = { VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO };
info.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
info.pNext = nullptr;
info.flags = 0;
info.magFilter = VK_FILTER_NEAREST; info.magFilter = VK_FILTER_NEAREST;
info.minFilter = VK_FILTER_NEAREST; info.minFilter = VK_FILTER_NEAREST;
info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
info.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.mipLodBias = 0.0f;
info.anisotropyEnable = VK_FALSE;
info.maxAnisotropy = 1.0f;
info.compareEnable = VK_FALSE;
info.compareOp = VK_COMPARE_OP_ALWAYS;
info.minLod = 0.0f;
info.maxLod = 0.0f;
info.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK; info.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
info.unnormalizedCoordinates = VK_FALSE; info.unnormalizedCoordinates = VK_FALSE;
@ -126,10 +116,7 @@ namespace dxvk {
{ 2, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, &m_sampler }, { 2, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, &m_sampler },
}}; }};
VkDescriptorSetLayoutCreateInfo dsetInfo; VkDescriptorSetLayoutCreateInfo dsetInfo = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO };
dsetInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
dsetInfo.pNext = nullptr;
dsetInfo.flags = 0;
dsetInfo.bindingCount = bindings.size(); dsetInfo.bindingCount = bindings.size();
dsetInfo.pBindings = bindings.data(); dsetInfo.pBindings = bindings.data();
@ -147,10 +134,7 @@ namespace dxvk {
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr }, { 2, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr },
}}; }};
VkDescriptorSetLayoutCreateInfo dsetInfo; VkDescriptorSetLayoutCreateInfo dsetInfo = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO };
dsetInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
dsetInfo.pNext = nullptr;
dsetInfo.flags = 0;
dsetInfo.bindingCount = bindings.size(); dsetInfo.bindingCount = bindings.size();
dsetInfo.pBindings = bindings.data(); dsetInfo.pBindings = bindings.data();
@ -163,16 +147,10 @@ namespace dxvk {
VkPipelineLayout DxvkMetaPackObjects::createPipelineLayout( VkPipelineLayout DxvkMetaPackObjects::createPipelineLayout(
VkDescriptorSetLayout dsetLayout, VkDescriptorSetLayout dsetLayout,
size_t pushLayout) { uint32_t pushLayout) {
VkPushConstantRange push; VkPushConstantRange push = { VK_SHADER_STAGE_COMPUTE_BIT, 0, pushLayout };
push.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
push.offset = 0;
push.size = pushLayout;
VkPipelineLayoutCreateInfo layoutInfo; VkPipelineLayoutCreateInfo layoutInfo = { VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO };
layoutInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
layoutInfo.pNext = nullptr;
layoutInfo.flags = 0;
layoutInfo.setLayoutCount = 1; layoutInfo.setLayoutCount = 1;
layoutInfo.pSetLayouts = &dsetLayout; layoutInfo.pSetLayouts = &dsetLayout;
layoutInfo.pushConstantRangeCount = 1; layoutInfo.pushConstantRangeCount = 1;
@ -192,17 +170,13 @@ namespace dxvk {
{ 2, 0, 1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, offsetof(DxvkMetaPackDescriptors, srcStencil), 0 }, { 2, 0, 1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, offsetof(DxvkMetaPackDescriptors, srcStencil), 0 },
}}; }};
VkDescriptorUpdateTemplateCreateInfo templateInfo; VkDescriptorUpdateTemplateCreateInfo templateInfo = { VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO };
templateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
templateInfo.pNext = nullptr;
templateInfo.flags = 0;
templateInfo.descriptorUpdateEntryCount = bindings.size(); templateInfo.descriptorUpdateEntryCount = bindings.size();
templateInfo.pDescriptorUpdateEntries = bindings.data(); templateInfo.pDescriptorUpdateEntries = bindings.data();
templateInfo.templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET; templateInfo.templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET;
templateInfo.descriptorSetLayout = m_dsetLayoutPack; templateInfo.descriptorSetLayout = m_dsetLayoutPack;
templateInfo.pipelineBindPoint = VK_PIPELINE_BIND_POINT_COMPUTE; templateInfo.pipelineBindPoint = VK_PIPELINE_BIND_POINT_COMPUTE;
templateInfo.pipelineLayout = m_pipeLayoutPack; templateInfo.pipelineLayout = m_pipeLayoutPack;
templateInfo.set = 0;
VkDescriptorUpdateTemplate result = VK_NULL_HANDLE; VkDescriptorUpdateTemplate result = VK_NULL_HANDLE;
if (m_vkd->vkCreateDescriptorUpdateTemplate(m_vkd->device(), if (m_vkd->vkCreateDescriptorUpdateTemplate(m_vkd->device(),
@ -219,10 +193,7 @@ namespace dxvk {
{ 2, 0, 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, offsetof(DxvkMetaUnpackDescriptors, srcBuffer), 0 }, { 2, 0, 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, offsetof(DxvkMetaUnpackDescriptors, srcBuffer), 0 },
}}; }};
VkDescriptorUpdateTemplateCreateInfo templateInfo; VkDescriptorUpdateTemplateCreateInfo templateInfo = { VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO };
templateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
templateInfo.pNext = nullptr;
templateInfo.flags = 0;
templateInfo.descriptorUpdateEntryCount = bindings.size(); templateInfo.descriptorUpdateEntryCount = bindings.size();
templateInfo.pDescriptorUpdateEntries = bindings.data(); templateInfo.pDescriptorUpdateEntries = bindings.data();
templateInfo.templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET; templateInfo.templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET;
@ -242,10 +213,7 @@ namespace dxvk {
VkPipeline DxvkMetaPackObjects::createPipeline( VkPipeline DxvkMetaPackObjects::createPipeline(
VkPipelineLayout pipeLayout, VkPipelineLayout pipeLayout,
const SpirvCodeBuffer& code) { const SpirvCodeBuffer& code) {
VkShaderModuleCreateInfo shaderInfo; VkShaderModuleCreateInfo shaderInfo = { VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO };
shaderInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
shaderInfo.pNext = nullptr;
shaderInfo.flags = 0;
shaderInfo.codeSize = code.size(); shaderInfo.codeSize = code.size();
shaderInfo.pCode = code.data(); shaderInfo.pCode = code.data();
@ -254,22 +222,14 @@ namespace dxvk {
if (m_vkd->vkCreateShaderModule(m_vkd->device(), &shaderInfo, nullptr, &module) != VK_SUCCESS) if (m_vkd->vkCreateShaderModule(m_vkd->device(), &shaderInfo, nullptr, &module) != VK_SUCCESS)
throw DxvkError("DxvkMetaPackObjects: Failed to create shader module"); throw DxvkError("DxvkMetaPackObjects: Failed to create shader module");
VkPipelineShaderStageCreateInfo stageInfo; VkPipelineShaderStageCreateInfo stageInfo = { VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO };
stageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
stageInfo.pNext = nullptr;
stageInfo.flags = 0;
stageInfo.stage = VK_SHADER_STAGE_COMPUTE_BIT; stageInfo.stage = VK_SHADER_STAGE_COMPUTE_BIT;
stageInfo.module = module; stageInfo.module = module;
stageInfo.pName = "main"; stageInfo.pName = "main";
stageInfo.pSpecializationInfo = nullptr;
VkComputePipelineCreateInfo pipeInfo; VkComputePipelineCreateInfo pipeInfo = { VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO };
pipeInfo.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
pipeInfo.pNext = nullptr;
pipeInfo.flags = 0;
pipeInfo.stage = stageInfo; pipeInfo.stage = stageInfo;
pipeInfo.layout = pipeLayout; pipeInfo.layout = pipeLayout;
pipeInfo.basePipelineHandle = VK_NULL_HANDLE;
pipeInfo.basePipelineIndex = -1; pipeInfo.basePipelineIndex = -1;
VkPipeline result = VK_NULL_HANDLE; VkPipeline result = VK_NULL_HANDLE;

View File

@ -118,7 +118,7 @@ namespace dxvk {
VkPipelineLayout createPipelineLayout( VkPipelineLayout createPipelineLayout(
VkDescriptorSetLayout dsetLayout, VkDescriptorSetLayout dsetLayout,
size_t pushLayout); uint32_t pushLayout);
VkDescriptorUpdateTemplateKHR createPackDescriptorUpdateTemplate(); VkDescriptorUpdateTemplateKHR createPackDescriptorUpdateTemplate();

View File

@ -116,25 +116,14 @@ namespace dxvk {
VkSampler DxvkMetaResolveObjects::createSampler() const { VkSampler DxvkMetaResolveObjects::createSampler() const {
VkSamplerCreateInfo info; VkSamplerCreateInfo info = { VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO };
info.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
info.pNext = nullptr;
info.flags = 0;
info.magFilter = VK_FILTER_NEAREST; info.magFilter = VK_FILTER_NEAREST;
info.minFilter = VK_FILTER_NEAREST; info.minFilter = VK_FILTER_NEAREST;
info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST;
info.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; info.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
info.mipLodBias = 0.0f;
info.anisotropyEnable = VK_FALSE;
info.maxAnisotropy = 1.0f;
info.compareEnable = VK_FALSE;
info.compareOp = VK_COMPARE_OP_ALWAYS;
info.minLod = 0.0f;
info.maxLod = 0.0f;
info.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK; info.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
info.unnormalizedCoordinates = VK_FALSE;
VkSampler result = VK_NULL_HANDLE; VkSampler result = VK_NULL_HANDLE;
if (m_vkd->vkCreateSampler(m_vkd->device(), &info, nullptr, &result) != VK_SUCCESS) if (m_vkd->vkCreateSampler(m_vkd->device(), &info, nullptr, &result) != VK_SUCCESS)
@ -145,10 +134,7 @@ namespace dxvk {
VkShaderModule DxvkMetaResolveObjects::createShaderModule( VkShaderModule DxvkMetaResolveObjects::createShaderModule(
const SpirvCodeBuffer& code) const { const SpirvCodeBuffer& code) const {
VkShaderModuleCreateInfo info; VkShaderModuleCreateInfo info = { VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO };
info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
info.pNext = nullptr;
info.flags = 0;
info.codeSize = code.size(); info.codeSize = code.size();
info.pCode = code.data(); info.pCode = code.data();