mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-16 10:26:58 +02:00
use VK_FORMAT_B8G8R8A8_UNORM
This commit is contained in:
parent
1c8f78f36f
commit
42149e1fd9
3 changed files with 5 additions and 22 deletions
|
|
@ -12,20 +12,13 @@
|
||||||
#define OperationMode 1
|
#define OperationMode 1
|
||||||
#define EdgeThreshold 8.0/255.0
|
#define EdgeThreshold 8.0/255.0
|
||||||
// #define EdgeSharpness 2.0
|
// #define EdgeSharpness 2.0
|
||||||
// #define UseUniformBlock
|
|
||||||
|
|
||||||
#if defined(UseUniformBlock)
|
|
||||||
layout( push_constant ) uniform constants {
|
layout( push_constant ) uniform constants {
|
||||||
highp vec4 ViewportInfo[1];
|
highp vec4 ViewportInfo[1];
|
||||||
highp vec2 ResizeFactor;
|
highp vec2 ResizeFactor;
|
||||||
highp float EdgeSharpness;
|
highp float EdgeSharpness;
|
||||||
};
|
};
|
||||||
layout(set = 0, binding = 0) uniform mediump sampler2D ps0;
|
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) in highp vec2 in_TEXCOORD0;
|
||||||
layout(location=0) out vec4 out_Target0;
|
layout(location=0) out vec4 out_Target0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,20 +15,13 @@
|
||||||
#define UseEdgeDirection 1
|
#define UseEdgeDirection 1
|
||||||
#define EdgeThreshold 8.0/255.0
|
#define EdgeThreshold 8.0/255.0
|
||||||
// #define EdgeSharpness 2.0
|
// #define EdgeSharpness 2.0
|
||||||
// #define UseUniformBlock
|
|
||||||
|
|
||||||
#if defined(UseUniformBlock)
|
|
||||||
layout( push_constant ) uniform constants {
|
layout( push_constant ) uniform constants {
|
||||||
highp vec4 ViewportInfo[1];
|
highp vec4 ViewportInfo[1];
|
||||||
highp vec2 ResizeFactor;
|
highp vec2 ResizeFactor;
|
||||||
highp float EdgeSharpness;
|
highp float EdgeSharpness;
|
||||||
};
|
};
|
||||||
layout(set = 0, binding = 0) uniform mediump sampler2D ps0;
|
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) in highp vec2 in_TEXCOORD0;
|
||||||
layout(location=0) out vec4 out_Target0;
|
layout(location=0) out vec4 out_Target0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,11 @@ SGSR::SGSR(const Device& device, MemoryAllocator& memory_allocator, size_t image
|
||||||
// Not finished yet initializing at ctor time?
|
// Not finished yet initializing at ctor time?
|
||||||
m_dynamic_images.resize(m_image_count);
|
m_dynamic_images.resize(m_image_count);
|
||||||
for (auto& images : m_dynamic_images) {
|
for (auto& images : m_dynamic_images) {
|
||||||
images.images[0] = CreateWrappedImage(m_memory_allocator, m_extent, 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_R16G16B16A16_SFLOAT);
|
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)
|
for (auto& images : m_dynamic_images)
|
||||||
images.framebuffers[0] = CreateWrappedFramebuffer(m_device, m_renderpass, images.image_views[0], m_extent);
|
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) {
|
void SGSR::UploadImages(Scheduler& scheduler) {
|
||||||
if (!m_images_ready) {
|
if (!m_images_ready) {
|
||||||
scheduler.Record([&](vk::CommandBuffer cmdbuf) {
|
scheduler.Record([&](vk::CommandBuffer cmdbuf) {
|
||||||
for (auto& image : m_dynamic_images) {
|
for (auto& image : m_dynamic_images)
|
||||||
ClearColorImage(cmdbuf, *image.images[0]);
|
ClearColorImage(cmdbuf, *image.images[0]);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
scheduler.Finish();
|
scheduler.Finish();
|
||||||
m_images_ready = true;
|
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);
|
BeginRenderPass(cmdbuf, renderpass, stage0_framebuffer, extent);
|
||||||
cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, stage0_pipeline);
|
cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, stage0_pipeline);
|
||||||
cmdbuf.BindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, stage0_descriptor_set, {});
|
cmdbuf.BindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, stage0_descriptor_set, {});
|
||||||
cmdbuf.PushConstants(pipeline_layout,
|
cmdbuf.PushConstants(pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT, viewport_con);
|
||||||
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
|
|
||||||
viewport_con);
|
|
||||||
cmdbuf.Draw(3, 1, 0, 0);
|
cmdbuf.Draw(3, 1, 0, 0);
|
||||||
cmdbuf.EndRenderPass();
|
cmdbuf.EndRenderPass();
|
||||||
TransitionImageLayout(cmdbuf, stage0_image, VK_IMAGE_LAYOUT_GENERAL);
|
TransitionImageLayout(cmdbuf, stage0_image, VK_IMAGE_LAYOUT_GENERAL);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue