use VK_FORMAT_B8G8R8A8_UNORM

This commit is contained in:
lizzie 2026-05-15 06:54:37 +00:00
parent 1c8f78f36f
commit 42149e1fd9
3 changed files with 5 additions and 22 deletions

View file

@ -12,20 +12,13 @@
#define OperationMode 1
#define EdgeThreshold 8.0/255.0
// #define EdgeSharpness 2.0
// #define UseUniformBlock
#if defined(UseUniformBlock)
layout( push_constant ) uniform constants {
highp vec4 ViewportInfo[1];
highp vec2 ResizeFactor;
highp float EdgeSharpness;
};
layout(set = 0, binding = 0) uniform mediump sampler2D ps0;
#else
uniform highp vec4 ViewportInfo[1];
uniform mediump sampler2D ps0;
#endif
layout(location=0) in highp vec2 in_TEXCOORD0;
layout(location=0) out vec4 out_Target0;

View file

@ -15,20 +15,13 @@
#define UseEdgeDirection 1
#define EdgeThreshold 8.0/255.0
// #define EdgeSharpness 2.0
// #define UseUniformBlock
#if defined(UseUniformBlock)
layout( push_constant ) uniform constants {
highp vec4 ViewportInfo[1];
highp vec2 ResizeFactor;
highp float EdgeSharpness;
};
layout(set = 0, binding = 0) uniform mediump sampler2D ps0;
#else
uniform highp vec4 ViewportInfo[1];
uniform mediump sampler2D ps0;
#endif
layout(location=0) in highp vec2 in_TEXCOORD0;
layout(location=0) out vec4 out_Target0;

View file

@ -27,11 +27,11 @@ SGSR::SGSR(const Device& device, MemoryAllocator& memory_allocator, size_t image
// Not finished yet initializing at ctor time?
m_dynamic_images.resize(m_image_count);
for (auto& images : m_dynamic_images) {
images.images[0] = CreateWrappedImage(m_memory_allocator, m_extent, VK_FORMAT_R16G16B16A16_SFLOAT);
images.image_views[0] = CreateWrappedImageView(m_device, images.images[0], VK_FORMAT_R16G16B16A16_SFLOAT);
images.images[0] = CreateWrappedImage(m_memory_allocator, m_extent, VK_FORMAT_B8G8R8A8_UNORM);
images.image_views[0] = CreateWrappedImageView(m_device, images.images[0], VK_FORMAT_B8G8R8A8_UNORM);
}
m_renderpass = CreateWrappedRenderPass(m_device, VK_FORMAT_R16G16B16A16_SFLOAT);
m_renderpass = CreateWrappedRenderPass(m_device, VK_FORMAT_B8G8R8A8_UNORM);
for (auto& images : m_dynamic_images)
images.framebuffers[0] = CreateWrappedFramebuffer(m_device, m_renderpass, images.image_views[0], m_extent);
@ -78,9 +78,8 @@ void SGSR::UpdateDescriptorSets(VkImageView image_view, size_t image_index) {
void SGSR::UploadImages(Scheduler& scheduler) {
if (!m_images_ready) {
scheduler.Record([&](vk::CommandBuffer cmdbuf) {
for (auto& image : m_dynamic_images) {
for (auto& image : m_dynamic_images)
ClearColorImage(cmdbuf, *image.images[0]);
}
});
scheduler.Finish();
m_images_ready = true;
@ -131,9 +130,7 @@ VkImageView SGSR::Draw(Scheduler& scheduler, size_t image_index, VkImage source_
BeginRenderPass(cmdbuf, renderpass, stage0_framebuffer, extent);
cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, stage0_pipeline);
cmdbuf.BindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, stage0_descriptor_set, {});
cmdbuf.PushConstants(pipeline_layout,
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
viewport_con);
cmdbuf.PushConstants(pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT, viewport_con);
cmdbuf.Draw(3, 1, 0, 0);
cmdbuf.EndRenderPass();
TransitionImageLayout(cmdbuf, stage0_image, VK_IMAGE_LAYOUT_GENERAL);