mirror of
https://github.com/ZDoom/Raze.git
synced 2025-05-30 00:41:24 +00:00
- backend update from GZDoom.
This commit is contained in:
parent
008391a2ad
commit
96fb96617f
10 changed files with 244 additions and 32 deletions
|
@ -212,13 +212,18 @@ void VkRenderBuffers::CreateSceneNormal(int width, int height, VkSampleCountFlag
|
|||
ImageBuilder builder;
|
||||
builder.setSize(width, height);
|
||||
builder.setSamples(samples);
|
||||
builder.setFormat(VK_FORMAT_A2R10G10B10_UNORM_PACK32);
|
||||
builder.setFormat(SceneNormalFormat);
|
||||
builder.setUsage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT);
|
||||
if (!builder.isFormatSupported(fb->device, VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT))
|
||||
{
|
||||
SceneNormalFormat = VK_FORMAT_R8G8B8A8_UNORM;
|
||||
builder.setFormat(SceneNormalFormat);
|
||||
}
|
||||
SceneNormal.Image = builder.create(fb->device);
|
||||
SceneNormal.Image->SetDebugName("VkRenderBuffers.SceneNormal");
|
||||
|
||||
ImageViewBuilder viewbuilder;
|
||||
viewbuilder.setImage(SceneNormal.Image.get(), VK_FORMAT_A2R10G10B10_UNORM_PACK32);
|
||||
viewbuilder.setImage(SceneNormal.Image.get(), SceneNormalFormat);
|
||||
SceneNormal.View = viewbuilder.create(fb->device);
|
||||
SceneNormal.View->SetDebugName("VkRenderBuffers.SceneNormalView");
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ public:
|
|||
VkTextureImage SceneFog;
|
||||
|
||||
VkFormat SceneDepthStencilFormat = VK_FORMAT_D24_UNORM_S8_UINT;
|
||||
VkFormat SceneNormalFormat = VK_FORMAT_A2R10G10B10_UNORM_PACK32;
|
||||
|
||||
static const int NumPipelineImages = 2;
|
||||
VkTextureImage PipelineImage[NumPipelineImages];
|
||||
|
|
|
@ -281,7 +281,7 @@ std::unique_ptr<VulkanRenderPass> VkRenderPassSetup::CreateRenderPass(int clearT
|
|||
{
|
||||
auto buffers = GetVulkanFrameBuffer()->GetBuffers();
|
||||
|
||||
VkFormat drawBufferFormats[] = { VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_A2R10G10B10_UNORM_PACK32 };
|
||||
VkFormat drawBufferFormats[] = { VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, buffers->SceneNormalFormat };
|
||||
|
||||
RenderPassBuilder builder;
|
||||
|
||||
|
@ -420,7 +420,8 @@ std::unique_ptr<VulkanPipeline> VkRenderPassSetup::CreatePipeline(const VkPipeli
|
|||
builder.setTopology(vktopology[key.DrawType]);
|
||||
builder.setDepthStencilEnable(key.DepthTest, key.DepthWrite, key.StencilTest);
|
||||
builder.setDepthFunc(depthfunc2vk[key.DepthFunc]);
|
||||
builder.setDepthClampEnable(key.DepthClamp);
|
||||
if (fb->device->UsedDeviceFeatures.depthClamp)
|
||||
builder.setDepthClampEnable(key.DepthClamp);
|
||||
builder.setDepthBias(key.DepthBias, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
// Note: CCW and CW is intentionally swapped here because the vulkan and opengl coordinate systems differ.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue