mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-14 22:29:15 +01:00
[dxvk] Replace VK_KHR_dynamic_rendering with core feature
This commit is contained in:
parent
e79a2e8dfa
commit
3cfc3e7714
@ -295,7 +295,7 @@ namespace dxvk {
|
|||||||
DxvkDeviceFeatures enabledFeatures) {
|
DxvkDeviceFeatures enabledFeatures) {
|
||||||
DxvkDeviceExtensions devExtensions;
|
DxvkDeviceExtensions devExtensions;
|
||||||
|
|
||||||
std::array<DxvkExt*, 25> devExtensionList = {{
|
std::array<DxvkExt*, 24> devExtensionList = {{
|
||||||
&devExtensions.amdMemoryOverallocationBehaviour,
|
&devExtensions.amdMemoryOverallocationBehaviour,
|
||||||
&devExtensions.amdShaderFragmentMask,
|
&devExtensions.amdShaderFragmentMask,
|
||||||
&devExtensions.ext4444Formats,
|
&devExtensions.ext4444Formats,
|
||||||
@ -315,7 +315,6 @@ namespace dxvk {
|
|||||||
&devExtensions.extShaderStencilExport,
|
&devExtensions.extShaderStencilExport,
|
||||||
&devExtensions.extTransformFeedback,
|
&devExtensions.extTransformFeedback,
|
||||||
&devExtensions.extVertexAttributeDivisor,
|
&devExtensions.extVertexAttributeDivisor,
|
||||||
&devExtensions.khrDynamicRendering,
|
|
||||||
&devExtensions.khrExternalMemoryWin32,
|
&devExtensions.khrExternalMemoryWin32,
|
||||||
&devExtensions.khrPipelineLibrary,
|
&devExtensions.khrPipelineLibrary,
|
||||||
&devExtensions.khrSwapchain,
|
&devExtensions.khrSwapchain,
|
||||||
@ -379,8 +378,6 @@ namespace dxvk {
|
|||||||
enabledFeatures.extShaderModuleIdentifier.shaderModuleIdentifier =
|
enabledFeatures.extShaderModuleIdentifier.shaderModuleIdentifier =
|
||||||
m_deviceFeatures.extShaderModuleIdentifier.shaderModuleIdentifier;
|
m_deviceFeatures.extShaderModuleIdentifier.shaderModuleIdentifier;
|
||||||
|
|
||||||
enabledFeatures.khrDynamicRendering.dynamicRendering = VK_TRUE;
|
|
||||||
|
|
||||||
Logger::info(str::format("Device properties:"
|
Logger::info(str::format("Device properties:"
|
||||||
"\n Device name: : ", m_deviceInfo.core.properties.deviceName,
|
"\n Device name: : ", m_deviceInfo.core.properties.deviceName,
|
||||||
"\n Driver version : ",
|
"\n Driver version : ",
|
||||||
@ -470,11 +467,6 @@ namespace dxvk {
|
|||||||
enabledFeatures.extVertexAttributeDivisor.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extVertexAttributeDivisor);
|
enabledFeatures.extVertexAttributeDivisor.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extVertexAttributeDivisor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (devExtensions.khrDynamicRendering) {
|
|
||||||
enabledFeatures.khrDynamicRendering.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR;
|
|
||||||
enabledFeatures.khrDynamicRendering.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.khrDynamicRendering);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Report the desired overallocation behaviour to the driver
|
// Report the desired overallocation behaviour to the driver
|
||||||
VkDeviceMemoryOverallocationCreateInfoAMD overallocInfo;
|
VkDeviceMemoryOverallocationCreateInfoAMD overallocInfo;
|
||||||
overallocInfo.sType = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
|
overallocInfo.sType = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
|
||||||
@ -780,11 +772,6 @@ namespace dxvk {
|
|||||||
m_deviceFeatures.extVertexAttributeDivisor.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extVertexAttributeDivisor);
|
m_deviceFeatures.extVertexAttributeDivisor.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extVertexAttributeDivisor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME)) {
|
|
||||||
m_deviceFeatures.khrDynamicRendering.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR;
|
|
||||||
m_deviceFeatures.khrDynamicRendering.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.khrDynamicRendering);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_vki->vkGetPhysicalDeviceFeatures2(m_handle, &m_deviceFeatures.core);
|
m_vki->vkGetPhysicalDeviceFeatures2(m_handle, &m_deviceFeatures.core);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -899,9 +886,7 @@ namespace dxvk {
|
|||||||
"\n geometryStreams : ", features.extTransformFeedback.geometryStreams ? "1" : "0",
|
"\n geometryStreams : ", features.extTransformFeedback.geometryStreams ? "1" : "0",
|
||||||
"\n", VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME,
|
"\n", VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME,
|
||||||
"\n vertexAttributeInstanceRateDivisor : ", features.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor ? "1" : "0",
|
"\n vertexAttributeInstanceRateDivisor : ", features.extVertexAttributeDivisor.vertexAttributeInstanceRateDivisor ? "1" : "0",
|
||||||
"\n vertexAttributeInstanceRateZeroDivisor : ", features.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor ? "1" : "0",
|
"\n vertexAttributeInstanceRateZeroDivisor : ", features.extVertexAttributeDivisor.vertexAttributeInstanceRateZeroDivisor ? "1" : "0"));
|
||||||
"\n", VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME,
|
|
||||||
"\n dynamicRendering : ", features.khrDynamicRendering.dynamicRendering ? "1" : "0"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -254,8 +254,8 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
void cmdBeginRendering(
|
void cmdBeginRendering(
|
||||||
const VkRenderingInfoKHR* pRenderingInfo) {
|
const VkRenderingInfo* pRenderingInfo) {
|
||||||
m_vkd->vkCmdBeginRenderingKHR(m_execBuffer, pRenderingInfo);
|
m_vkd->vkCmdBeginRendering(m_execBuffer, pRenderingInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -588,7 +588,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
void cmdEndRendering() {
|
void cmdEndRendering() {
|
||||||
m_vkd->vkCmdEndRenderingKHR(m_execBuffer);
|
m_vkd->vkCmdEndRendering(m_execBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1620,12 +1620,12 @@ namespace dxvk {
|
|||||||
descriptorWrite.pImageInfo = &descriptorImage;
|
descriptorWrite.pImageInfo = &descriptorImage;
|
||||||
|
|
||||||
// Common render pass info
|
// Common render pass info
|
||||||
VkRenderingAttachmentInfoKHR attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
VkRenderingAttachmentInfo attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
attachmentInfo.imageLayout = dstLayout;
|
attachmentInfo.imageLayout = dstLayout;
|
||||||
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
|
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
|
||||||
attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
||||||
|
|
||||||
VkRenderingInfoKHR renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO_KHR };
|
VkRenderingInfo renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO };
|
||||||
renderingInfo.colorAttachmentCount = 1;
|
renderingInfo.colorAttachmentCount = 1;
|
||||||
renderingInfo.pColorAttachments = &attachmentInfo;
|
renderingInfo.pColorAttachments = &attachmentInfo;
|
||||||
|
|
||||||
@ -1960,17 +1960,17 @@ namespace dxvk {
|
|||||||
? imageView->pickLayout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)
|
? imageView->pickLayout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)
|
||||||
: imageView->pickLayout(VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL);
|
: imageView->pickLayout(VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL);
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
VkRenderingAttachmentInfo attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
attachmentInfo.imageView = imageView->handle();
|
attachmentInfo.imageView = imageView->handle();
|
||||||
attachmentInfo.imageLayout = imageLayout;
|
attachmentInfo.imageLayout = imageLayout;
|
||||||
attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
||||||
attachmentInfo.clearValue = clearValue;
|
attachmentInfo.clearValue = clearValue;
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR stencilInfo = attachmentInfo;
|
VkRenderingAttachmentInfo stencilInfo = attachmentInfo;
|
||||||
|
|
||||||
VkExtent3D extent = imageView->mipLevelExtent(0);
|
VkExtent3D extent = imageView->mipLevelExtent(0);
|
||||||
|
|
||||||
VkRenderingInfoKHR renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO_KHR };
|
VkRenderingInfo renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO };
|
||||||
renderingInfo.renderArea.extent = { extent.width, extent.height };
|
renderingInfo.renderArea.extent = { extent.width, extent.height };
|
||||||
renderingInfo.layerCount = imageView->info().numLayers;
|
renderingInfo.layerCount = imageView->info().numLayers;
|
||||||
|
|
||||||
@ -2704,13 +2704,13 @@ namespace dxvk {
|
|||||||
|
|
||||||
VkExtent3D imageExtent = dstImage->mipLevelExtent(region.dstSubresource.mipLevel);
|
VkExtent3D imageExtent = dstImage->mipLevelExtent(region.dstSubresource.mipLevel);
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
VkRenderingAttachmentInfo attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
attachmentInfo.imageView = pass->getDstView();
|
attachmentInfo.imageView = pass->getDstView();
|
||||||
attachmentInfo.imageLayout = dstLayout;
|
attachmentInfo.imageLayout = dstLayout;
|
||||||
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
||||||
attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
||||||
|
|
||||||
VkRenderingInfoKHR renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO_KHR };
|
VkRenderingInfo renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO };
|
||||||
renderingInfo.renderArea = VkRect2D {
|
renderingInfo.renderArea = VkRect2D {
|
||||||
VkOffset2D { 0, 0 },
|
VkOffset2D { 0, 0 },
|
||||||
VkExtent2D { imageExtent.width, imageExtent.height } };
|
VkExtent2D { imageExtent.width, imageExtent.height } };
|
||||||
@ -3043,13 +3043,13 @@ namespace dxvk {
|
|||||||
|
|
||||||
VkExtent3D extent = imageView->mipLevelExtent(0);
|
VkExtent3D extent = imageView->mipLevelExtent(0);
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
VkRenderingAttachmentInfo attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
attachmentInfo.imageView = imageView->handle();
|
attachmentInfo.imageView = imageView->handle();
|
||||||
attachmentInfo.imageLayout = clearLayout;
|
attachmentInfo.imageLayout = clearLayout;
|
||||||
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
||||||
attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
||||||
|
|
||||||
VkRenderingInfoKHR renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO_KHR };
|
VkRenderingInfo renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO };
|
||||||
renderingInfo.renderArea.extent = { extent.width, extent.height };
|
renderingInfo.renderArea.extent = { extent.width, extent.height };
|
||||||
renderingInfo.layerCount = imageView->info().numLayers;
|
renderingInfo.layerCount = imageView->info().numLayers;
|
||||||
|
|
||||||
@ -3504,7 +3504,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
VkExtent3D mipExtent = dstImage->mipLevelExtent(dstSubresource.mipLevel);
|
VkExtent3D mipExtent = dstImage->mipLevelExtent(dstSubresource.mipLevel);
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
VkRenderingAttachmentInfo attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
attachmentInfo.imageView = views->getDstView();
|
attachmentInfo.imageView = views->getDstView();
|
||||||
attachmentInfo.imageLayout = dstLayout;
|
attachmentInfo.imageLayout = dstLayout;
|
||||||
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
||||||
@ -3513,7 +3513,7 @@ namespace dxvk {
|
|||||||
if (doDiscard)
|
if (doDiscard)
|
||||||
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
|
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
|
||||||
|
|
||||||
VkRenderingInfoKHR renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO_KHR };
|
VkRenderingInfo renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO };
|
||||||
renderingInfo.renderArea.offset = VkOffset2D { 0, 0 };
|
renderingInfo.renderArea.offset = VkOffset2D { 0, 0 };
|
||||||
renderingInfo.renderArea.extent = VkExtent2D { mipExtent.width, mipExtent.height };
|
renderingInfo.renderArea.extent = VkExtent2D { mipExtent.width, mipExtent.height };
|
||||||
renderingInfo.layerCount = dstSubresource.layerCount;
|
renderingInfo.layerCount = dstSubresource.layerCount;
|
||||||
@ -3755,7 +3755,7 @@ namespace dxvk {
|
|||||||
dstImage, region.dstSubresource, srcImage, region.srcSubresource,
|
dstImage, region.dstSubresource, srcImage, region.srcSubresource,
|
||||||
dstImage->info().format);
|
dstImage->info().format);
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR depthAttachment = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
VkRenderingAttachmentInfo depthAttachment = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
depthAttachment.imageView = views->getSrcView();
|
depthAttachment.imageView = views->getSrcView();
|
||||||
depthAttachment.imageLayout = srcLayout;
|
depthAttachment.imageLayout = srcLayout;
|
||||||
depthAttachment.resolveMode = depthMode;
|
depthAttachment.resolveMode = depthMode;
|
||||||
@ -3764,12 +3764,12 @@ namespace dxvk {
|
|||||||
depthAttachment.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
depthAttachment.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
||||||
depthAttachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
depthAttachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR stencilAttachment = depthAttachment;
|
VkRenderingAttachmentInfo stencilAttachment = depthAttachment;
|
||||||
stencilAttachment.resolveMode = stencilMode;
|
stencilAttachment.resolveMode = stencilMode;
|
||||||
|
|
||||||
VkExtent3D extent = dstImage->mipLevelExtent(region.dstSubresource.mipLevel);
|
VkExtent3D extent = dstImage->mipLevelExtent(region.dstSubresource.mipLevel);
|
||||||
|
|
||||||
VkRenderingInfoKHR renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO_KHR };
|
VkRenderingInfo renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO };
|
||||||
renderingInfo.renderArea.offset = VkOffset2D { 0, 0 };
|
renderingInfo.renderArea.offset = VkOffset2D { 0, 0 };
|
||||||
renderingInfo.renderArea.extent = VkExtent2D { extent.width, extent.height };
|
renderingInfo.renderArea.extent = VkExtent2D { extent.width, extent.height };
|
||||||
renderingInfo.layerCount = region.dstSubresource.layerCount;
|
renderingInfo.layerCount = region.dstSubresource.layerCount;
|
||||||
@ -3934,7 +3934,7 @@ namespace dxvk {
|
|||||||
scissor.offset = { region.dstOffset.x, region.dstOffset.y };
|
scissor.offset = { region.dstOffset.x, region.dstOffset.y };
|
||||||
scissor.extent = { region.extent.width, region.extent.height };
|
scissor.extent = { region.extent.width, region.extent.height };
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
VkRenderingAttachmentInfo attachmentInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
attachmentInfo.imageView = views->getDstView();
|
attachmentInfo.imageView = views->getDstView();
|
||||||
attachmentInfo.imageLayout = dstLayout;
|
attachmentInfo.imageLayout = dstLayout;
|
||||||
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
||||||
@ -3943,7 +3943,7 @@ namespace dxvk {
|
|||||||
if (doDiscard)
|
if (doDiscard)
|
||||||
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
|
attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
|
||||||
|
|
||||||
VkRenderingInfoKHR renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO_KHR };
|
VkRenderingInfo renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO };
|
||||||
renderingInfo.renderArea.offset = VkOffset2D { 0, 0 };
|
renderingInfo.renderArea.offset = VkOffset2D { 0, 0 };
|
||||||
renderingInfo.renderArea.extent = VkExtent2D { passExtent.width, passExtent.height };
|
renderingInfo.renderArea.extent = VkExtent2D { passExtent.width, passExtent.height };
|
||||||
renderingInfo.layerCount = region.dstSubresource.layerCount;
|
renderingInfo.layerCount = region.dstSubresource.layerCount;
|
||||||
@ -4224,11 +4224,11 @@ namespace dxvk {
|
|||||||
|
|
||||||
uint32_t colorInfoCount = 0;
|
uint32_t colorInfoCount = 0;
|
||||||
|
|
||||||
std::array<VkRenderingAttachmentInfoKHR, MaxNumRenderTargets> colorInfos;
|
std::array<VkRenderingAttachmentInfo, MaxNumRenderTargets> colorInfos;
|
||||||
|
|
||||||
for (uint32_t i = 0; i < MaxNumRenderTargets; i++) {
|
for (uint32_t i = 0; i < MaxNumRenderTargets; i++) {
|
||||||
const auto& colorTarget = framebufferInfo.getColorTarget(i);
|
const auto& colorTarget = framebufferInfo.getColorTarget(i);
|
||||||
colorInfos[i] = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
colorInfos[i] = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
|
|
||||||
if (colorTarget.view != nullptr) {
|
if (colorTarget.view != nullptr) {
|
||||||
colorInfos[i].imageView = colorTarget.view->handle();
|
colorInfos[i].imageView = colorTarget.view->handle();
|
||||||
@ -4243,7 +4243,7 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR depthInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR };
|
VkRenderingAttachmentInfo depthInfo = { VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO };
|
||||||
VkImageAspectFlags depthStencilAspects = 0;
|
VkImageAspectFlags depthStencilAspects = 0;
|
||||||
|
|
||||||
if (framebufferInfo.getDepthTarget().view != nullptr) {
|
if (framebufferInfo.getDepthTarget().view != nullptr) {
|
||||||
@ -4258,7 +4258,7 @@ namespace dxvk {
|
|||||||
depthInfo.clearValue.depthStencil.depth = ops.depthOps.clearValue.depth;
|
depthInfo.clearValue.depthStencil.depth = ops.depthOps.clearValue.depth;
|
||||||
}
|
}
|
||||||
|
|
||||||
VkRenderingAttachmentInfoKHR stencilInfo = depthInfo;
|
VkRenderingAttachmentInfo stencilInfo = depthInfo;
|
||||||
|
|
||||||
if (framebufferInfo.getDepthTarget().view != nullptr) {
|
if (framebufferInfo.getDepthTarget().view != nullptr) {
|
||||||
stencilInfo.loadOp = ops.depthOps.loadOpS;
|
stencilInfo.loadOp = ops.depthOps.loadOpS;
|
||||||
@ -4268,7 +4268,7 @@ namespace dxvk {
|
|||||||
stencilInfo.clearValue.depthStencil.stencil = ops.depthOps.clearValue.stencil;
|
stencilInfo.clearValue.depthStencil.stencil = ops.depthOps.clearValue.stencil;
|
||||||
}
|
}
|
||||||
|
|
||||||
VkRenderingInfoKHR renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO_KHR };
|
VkRenderingInfo renderingInfo = { VK_STRUCTURE_TYPE_RENDERING_INFO };
|
||||||
renderingInfo.renderArea.offset = VkOffset2D { 0, 0 };
|
renderingInfo.renderArea.offset = VkOffset2D { 0, 0 };
|
||||||
renderingInfo.renderArea.extent = VkExtent2D { fbSize.width, fbSize.height };
|
renderingInfo.renderArea.extent = VkExtent2D { fbSize.width, fbSize.height };
|
||||||
renderingInfo.layerCount = fbSize.layers;
|
renderingInfo.layerCount = fbSize.layers;
|
||||||
|
@ -51,7 +51,6 @@ namespace dxvk {
|
|||||||
VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT extShaderModuleIdentifier;
|
VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT extShaderModuleIdentifier;
|
||||||
VkPhysicalDeviceTransformFeedbackFeaturesEXT extTransformFeedback;
|
VkPhysicalDeviceTransformFeedbackFeaturesEXT extTransformFeedback;
|
||||||
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT extVertexAttributeDivisor;
|
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT extVertexAttributeDivisor;
|
||||||
VkPhysicalDeviceDynamicRenderingFeaturesKHR khrDynamicRendering;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
@ -295,7 +295,6 @@ namespace dxvk {
|
|||||||
DxvkExt extShaderStencilExport = { VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extShaderStencilExport = { VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extTransformFeedback = { VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extTransformFeedback = { VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extVertexAttributeDivisor = { VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extVertexAttributeDivisor = { VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt khrDynamicRendering = { VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, DxvkExtMode::Required };
|
|
||||||
DxvkExt khrExternalMemoryWin32 = { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt khrExternalMemoryWin32 = { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt khrPipelineLibrary = { VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt khrPipelineLibrary = { VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
|
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
|
||||||
|
@ -355,7 +355,7 @@ namespace dxvk {
|
|||||||
// pNext is non-const for some reason, but this is only an input
|
// pNext is non-const for some reason, but this is only an input
|
||||||
// structure, so we should be able to safely use const_cast.
|
// structure, so we should be able to safely use const_cast.
|
||||||
VkGraphicsPipelineLibraryCreateInfoEXT libInfo = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT };
|
VkGraphicsPipelineLibraryCreateInfoEXT libInfo = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT };
|
||||||
libInfo.pNext = const_cast<VkPipelineRenderingCreateInfoKHR*>(&state.rtInfo);
|
libInfo.pNext = const_cast<VkPipelineRenderingCreateInfo*>(&state.rtInfo);
|
||||||
libInfo.flags = VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT;
|
libInfo.flags = VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT;
|
||||||
|
|
||||||
VkGraphicsPipelineCreateInfo info = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, &libInfo };
|
VkGraphicsPipelineCreateInfo info = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, &libInfo };
|
||||||
|
@ -92,7 +92,7 @@ namespace dxvk {
|
|||||||
const DxvkGraphicsPipelineStateInfo& state,
|
const DxvkGraphicsPipelineStateInfo& state,
|
||||||
const DxvkShader* fs);
|
const DxvkShader* fs);
|
||||||
|
|
||||||
VkPipelineRenderingCreateInfoKHR rtInfo = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR };
|
VkPipelineRenderingCreateInfo rtInfo = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO };
|
||||||
VkPipelineColorBlendStateCreateInfo cbInfo = { VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO };
|
VkPipelineColorBlendStateCreateInfo cbInfo = { VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO };
|
||||||
VkPipelineMultisampleStateCreateInfo msInfo = { VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO };
|
VkPipelineMultisampleStateCreateInfo msInfo = { VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO };
|
||||||
|
|
||||||
|
@ -345,7 +345,7 @@ namespace dxvk {
|
|||||||
cbState.attachmentCount = 1;
|
cbState.attachmentCount = 1;
|
||||||
cbState.pAttachments = &cbAttachment;
|
cbState.pAttachments = &cbAttachment;
|
||||||
|
|
||||||
VkPipelineRenderingCreateInfoKHR rtState = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR };
|
VkPipelineRenderingCreateInfo rtState = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO };
|
||||||
rtState.colorAttachmentCount = 1;
|
rtState.colorAttachmentCount = 1;
|
||||||
rtState.pColorAttachmentFormats = &format;
|
rtState.pColorAttachmentFormats = &format;
|
||||||
|
|
||||||
|
@ -400,7 +400,7 @@ namespace dxvk {
|
|||||||
dsState.front = stencilOp;
|
dsState.front = stencilOp;
|
||||||
dsState.back = stencilOp;
|
dsState.back = stencilOp;
|
||||||
|
|
||||||
VkPipelineRenderingCreateInfoKHR rtState = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR };
|
VkPipelineRenderingCreateInfo rtState = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO };
|
||||||
|
|
||||||
if (aspect & VK_IMAGE_ASPECT_COLOR_BIT) {
|
if (aspect & VK_IMAGE_ASPECT_COLOR_BIT) {
|
||||||
rtState.colorAttachmentCount = 1;
|
rtState.colorAttachmentCount = 1;
|
||||||
|
@ -311,7 +311,7 @@ namespace dxvk {
|
|||||||
dsState.front = stencilOp;
|
dsState.front = stencilOp;
|
||||||
dsState.back = stencilOp;
|
dsState.back = stencilOp;
|
||||||
|
|
||||||
VkPipelineRenderingCreateInfoKHR rtState = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR };
|
VkPipelineRenderingCreateInfo rtState = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO };
|
||||||
|
|
||||||
if (formatInfo->aspectMask & VK_IMAGE_ASPECT_COLOR_BIT) {
|
if (formatInfo->aspectMask & VK_IMAGE_ASPECT_COLOR_BIT) {
|
||||||
rtState.colorAttachmentCount = 1;
|
rtState.colorAttachmentCount = 1;
|
||||||
|
@ -583,7 +583,7 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Only the view mask is used as input, and since we do not use MultiView, it is always 0
|
// Only the view mask is used as input, and since we do not use MultiView, it is always 0
|
||||||
VkPipelineRenderingCreateInfo rtInfo = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR };
|
VkPipelineRenderingCreateInfo rtInfo = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO };
|
||||||
|
|
||||||
VkGraphicsPipelineLibraryCreateInfoEXT libInfo = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT, &rtInfo };
|
VkGraphicsPipelineLibraryCreateInfoEXT libInfo = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT, &rtInfo };
|
||||||
libInfo.flags = VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT;
|
libInfo.flags = VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT;
|
||||||
@ -656,7 +656,7 @@ namespace dxvk {
|
|||||||
VkPipelineDepthStencilStateCreateInfo dsInfo = { VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO };
|
VkPipelineDepthStencilStateCreateInfo dsInfo = { VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO };
|
||||||
|
|
||||||
// Only the view mask is used as input, and since we do not use MultiView, it is always 0
|
// Only the view mask is used as input, and since we do not use MultiView, it is always 0
|
||||||
VkPipelineRenderingCreateInfo rtInfo = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR };
|
VkPipelineRenderingCreateInfo rtInfo = { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO };
|
||||||
|
|
||||||
VkGraphicsPipelineLibraryCreateInfoEXT libInfo = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT, &rtInfo };
|
VkGraphicsPipelineLibraryCreateInfoEXT libInfo = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT, &rtInfo };
|
||||||
libInfo.flags = VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT;
|
libInfo.flags = VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT;
|
||||||
|
@ -295,6 +295,8 @@ namespace dxvk::vk {
|
|||||||
VULKAN_FN(vkCmdNextSubpass2);
|
VULKAN_FN(vkCmdNextSubpass2);
|
||||||
VULKAN_FN(vkCmdEndRenderPass);
|
VULKAN_FN(vkCmdEndRenderPass);
|
||||||
VULKAN_FN(vkCmdEndRenderPass2);
|
VULKAN_FN(vkCmdEndRenderPass2);
|
||||||
|
VULKAN_FN(vkCmdBeginRendering);
|
||||||
|
VULKAN_FN(vkCmdEndRendering);
|
||||||
VULKAN_FN(vkCmdExecuteCommands);
|
VULKAN_FN(vkCmdExecuteCommands);
|
||||||
|
|
||||||
#ifdef VK_KHR_swapchain
|
#ifdef VK_KHR_swapchain
|
||||||
@ -358,11 +360,6 @@ namespace dxvk::vk {
|
|||||||
VULKAN_FN(vkCmdCuLaunchKernelNVX);
|
VULKAN_FN(vkCmdCuLaunchKernelNVX);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef VK_KHR_dynamic_rendering
|
|
||||||
VULKAN_FN(vkCmdBeginRenderingKHR);
|
|
||||||
VULKAN_FN(vkCmdEndRenderingKHR);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef VK_KHR_external_memory_win32
|
#ifdef VK_KHR_external_memory_win32
|
||||||
VULKAN_FN(vkGetMemoryWin32HandleKHR);
|
VULKAN_FN(vkGetMemoryWin32HandleKHR);
|
||||||
VULKAN_FN(vkGetMemoryWin32HandlePropertiesKHR);
|
VULKAN_FN(vkGetMemoryWin32HandlePropertiesKHR);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user