mirror of https://github.com/snes9xgit/snes9x.git
Fix parameter misordering. Fix a couple sync issues.
This commit is contained in:
parent
11dd6b1e6d
commit
4305bb7be1
|
@ -3,6 +3,7 @@
|
||||||
#include "slang_helpers.hpp"
|
#include "slang_helpers.hpp"
|
||||||
#include "slang_preset_ini.hpp"
|
#include "slang_preset_ini.hpp"
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -10,7 +11,6 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <unordered_map>
|
|
||||||
#include "../external/SPIRV-Cross/spirv_cross.hpp"
|
#include "../external/SPIRV-Cross/spirv_cross.hpp"
|
||||||
#include "../external/SPIRV-Cross/spirv_glsl.hpp"
|
#include "../external/SPIRV-Cross/spirv_glsl.hpp"
|
||||||
#include "slang_shader.hpp"
|
#include "slang_shader.hpp"
|
||||||
|
@ -247,19 +247,19 @@ bool SlangPreset::load_preset_file(string filename)
|
||||||
*/
|
*/
|
||||||
void SlangPreset::gather_parameters()
|
void SlangPreset::gather_parameters()
|
||||||
{
|
{
|
||||||
std::unordered_map<std::string, SlangShader::Parameter> map;
|
parameters.clear();
|
||||||
|
|
||||||
for (auto &s : passes)
|
for (auto &s : passes)
|
||||||
{
|
{
|
||||||
for (auto &p : s.parameters)
|
for (auto &p : s.parameters)
|
||||||
{
|
{
|
||||||
map.insert({ p.id, p });
|
auto it = std::find_if(parameters.begin(), parameters.end(), [&p](SlangShader::Parameter &needle) {
|
||||||
|
return (needle.id == p.id);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (it == parameters.end())
|
||||||
|
parameters.push_back(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parameters.clear();
|
|
||||||
for (auto &p : map)
|
|
||||||
parameters.push_back(p.second);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -175,10 +175,10 @@ void PipelineImage::clear(vk::CommandBuffer cmd)
|
||||||
.setSubresourceRange(subresource_range)
|
.setSubresourceRange(subresource_range)
|
||||||
.setOldLayout(vk::ImageLayout::eUndefined)
|
.setOldLayout(vk::ImageLayout::eUndefined)
|
||||||
.setNewLayout(vk::ImageLayout::eTransferDstOptimal)
|
.setNewLayout(vk::ImageLayout::eTransferDstOptimal)
|
||||||
.setSrcAccessMask(vk::AccessFlagBits::eTransferWrite | vk::AccessFlagBits::eTransferRead)
|
.setSrcAccessMask(vk::AccessFlagBits::eShaderRead)
|
||||||
.setDstAccessMask(vk::AccessFlagBits::eTransferWrite | vk::AccessFlagBits::eTransferRead);
|
.setDstAccessMask(vk::AccessFlagBits::eTransferWrite | vk::AccessFlagBits::eTransferRead);
|
||||||
|
|
||||||
cmd.pipelineBarrier(vk::PipelineStageFlagBits::eTransfer,
|
cmd.pipelineBarrier(vk::PipelineStageFlagBits::eFragmentShader,
|
||||||
vk::PipelineStageFlagBits::eTransfer,
|
vk::PipelineStageFlagBits::eTransfer,
|
||||||
{}, {}, {},
|
{}, {}, {},
|
||||||
image_memory_barrier);
|
image_memory_barrier);
|
||||||
|
|
|
@ -214,6 +214,7 @@ void Texture::from_buffer(uint8_t *buffer, int width, int height, int byte_strid
|
||||||
vk::SubmitInfo si{};
|
vk::SubmitInfo si{};
|
||||||
si.setCommandBuffers(cmd.get());
|
si.setCommandBuffers(cmd.get());
|
||||||
queue.submit(si);
|
queue.submit(si);
|
||||||
|
queue.waitIdle();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Texture::create(int width, int height, vk::Format fmt, vk::SamplerAddressMode wrap_mode, bool linear, bool mipmap)
|
void Texture::create(int width, int height, vk::Format fmt, vk::SamplerAddressMode wrap_mode, bool linear, bool mipmap)
|
||||||
|
|
Loading…
Reference in New Issue