early-access version 1494
This commit is contained in:
parent
99783aa746
commit
4a76db903f
6 changed files with 7 additions and 14 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 1493.
|
This is the source code for early-access 1494.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,6 @@
|
||||||
layout(local_size_x = 32, local_size_y = 32, local_size_z = 1) in;
|
layout(local_size_x = 32, local_size_y = 32, local_size_z = 1) in;
|
||||||
|
|
||||||
BEGIN_PUSH_CONSTANTS
|
BEGIN_PUSH_CONSTANTS
|
||||||
UNIFORM(0) uvec2 num_image_blocks;
|
|
||||||
UNIFORM(1) uvec2 block_dims;
|
UNIFORM(1) uvec2 block_dims;
|
||||||
|
|
||||||
UNIFORM(2) uint bytes_per_block_log2;
|
UNIFORM(2) uint bytes_per_block_log2;
|
||||||
|
@ -1325,7 +1324,7 @@ void main() {
|
||||||
|
|
||||||
const ivec3 coord = ivec3(gl_GlobalInvocationID * uvec3(block_dims, 1));
|
const ivec3 coord = ivec3(gl_GlobalInvocationID * uvec3(block_dims, 1));
|
||||||
uint block_index =
|
uint block_index =
|
||||||
pos.z * num_image_blocks.x * num_image_blocks.y + pos.y * num_image_blocks.x + pos.x;
|
pos.z * gl_WorkGroupSize.x * gl_WorkGroupSize.y + pos.y * gl_WorkGroupSize.x + pos.x;
|
||||||
|
|
||||||
current_index = 0;
|
current_index = 0;
|
||||||
bitsread = 0;
|
bitsread = 0;
|
||||||
|
|
|
@ -87,8 +87,6 @@ void UtilShaders::ASTCDecode(Image& image, const ImageBufferMap& map,
|
||||||
static constexpr GLuint BINDING_BYTE_TO_16_BUFFER = 6;
|
static constexpr GLuint BINDING_BYTE_TO_16_BUFFER = 6;
|
||||||
|
|
||||||
static constexpr GLuint BINDING_OUTPUT_IMAGE = 0;
|
static constexpr GLuint BINDING_OUTPUT_IMAGE = 0;
|
||||||
static constexpr GLuint LOC_NUM_IMAGE_BLOCKS = 0;
|
|
||||||
static constexpr GLuint LOC_BLOCK_DIMS = 1;
|
|
||||||
|
|
||||||
const Extent2D tile_size{
|
const Extent2D tile_size{
|
||||||
.width = VideoCore::Surface::DefaultBlockWidth(image.info.format),
|
.width = VideoCore::Surface::DefaultBlockWidth(image.info.format),
|
||||||
|
@ -113,7 +111,7 @@ void UtilShaders::ASTCDecode(Image& image, const ImageBufferMap& map,
|
||||||
sizeof(AstcBufferData::replicate_byte_to_16));
|
sizeof(AstcBufferData::replicate_byte_to_16));
|
||||||
|
|
||||||
glFlushMappedNamedBufferRange(map.buffer, map.offset, image.guest_size_bytes);
|
glFlushMappedNamedBufferRange(map.buffer, map.offset, image.guest_size_bytes);
|
||||||
glUniform2ui(LOC_BLOCK_DIMS, tile_size.width, tile_size.height);
|
glUniform2ui(1, tile_size.width, tile_size.height);
|
||||||
for (const SwizzleParameters& swizzle : swizzles) {
|
for (const SwizzleParameters& swizzle : swizzles) {
|
||||||
const size_t input_offset = swizzle.buffer_offset + map.offset;
|
const size_t input_offset = swizzle.buffer_offset + map.offset;
|
||||||
const u32 num_dispatches_x = Common::DivCeil(swizzle.num_tiles.width, 32U);
|
const u32 num_dispatches_x = Common::DivCeil(swizzle.num_tiles.width, 32U);
|
||||||
|
@ -123,7 +121,6 @@ void UtilShaders::ASTCDecode(Image& image, const ImageBufferMap& map,
|
||||||
ASSERT(params.origin == (std::array<u32, 3>{0, 0, 0}));
|
ASSERT(params.origin == (std::array<u32, 3>{0, 0, 0}));
|
||||||
ASSERT(params.destination == (std::array<s32, 3>{0, 0, 0}));
|
ASSERT(params.destination == (std::array<s32, 3>{0, 0, 0}));
|
||||||
|
|
||||||
glUniform2ui(LOC_NUM_IMAGE_BLOCKS, swizzle.num_tiles.width, swizzle.num_tiles.height);
|
|
||||||
glUniform1ui(2, params.bytes_per_block_log2);
|
glUniform1ui(2, params.bytes_per_block_log2);
|
||||||
glUniform1ui(3, params.layer_stride);
|
glUniform1ui(3, params.layer_stride);
|
||||||
glUniform1ui(4, params.block_size);
|
glUniform1ui(4, params.block_size);
|
||||||
|
|
|
@ -213,7 +213,6 @@ std::array<VkDescriptorUpdateTemplateEntryKHR, 8> BuildASTCPassDescriptorUpdateT
|
||||||
}
|
}
|
||||||
|
|
||||||
struct AstcPushConstants {
|
struct AstcPushConstants {
|
||||||
std::array<u32, 2> num_image_blocks;
|
|
||||||
std::array<u32, 2> blocks_dims;
|
std::array<u32, 2> blocks_dims;
|
||||||
u32 bytes_per_block_log2;
|
u32 bytes_per_block_log2;
|
||||||
u32 layer_stride;
|
u32 layer_stride;
|
||||||
|
@ -532,10 +531,8 @@ void ASTCDecoderPass::Assemble(Image& image, const StagingBufferRef& map,
|
||||||
ASSERT(params.destination == (std::array<s32, 3>{0, 0, 0}));
|
ASSERT(params.destination == (std::array<s32, 3>{0, 0, 0}));
|
||||||
|
|
||||||
scheduler.Record([vk_layout, vk_pipeline, num_dispatches_x, num_dispatches_y,
|
scheduler.Record([vk_layout, vk_pipeline, num_dispatches_x, num_dispatches_y,
|
||||||
num_dispatches_z, num_image_blocks, block_dims, params,
|
num_dispatches_z, block_dims, params, set](vk::CommandBuffer cmdbuf) {
|
||||||
set](vk::CommandBuffer cmdbuf) {
|
|
||||||
const AstcPushConstants uniforms{
|
const AstcPushConstants uniforms{
|
||||||
.num_image_blocks = num_image_blocks,
|
|
||||||
.blocks_dims = block_dims,
|
.blocks_dims = block_dims,
|
||||||
.bytes_per_block_log2 = params.bytes_per_block_log2,
|
.bytes_per_block_log2 = params.bytes_per_block_log2,
|
||||||
.layer_stride = params.layer_stride,
|
.layer_stride = params.layer_stride,
|
||||||
|
|
|
@ -648,7 +648,7 @@ void Config::ReadDebuggingValues() {
|
||||||
void Config::ReadServiceValues() {
|
void Config::ReadServiceValues() {
|
||||||
qt_config->beginGroup(QStringLiteral("Services"));
|
qt_config->beginGroup(QStringLiteral("Services"));
|
||||||
Settings::values.bcat_backend =
|
Settings::values.bcat_backend =
|
||||||
ReadSetting(QStringLiteral("bcat_backend"), QStringLiteral("null"))
|
ReadSetting(QStringLiteral("bcat_backend"), QStringLiteral("none"))
|
||||||
.toString()
|
.toString()
|
||||||
.toStdString();
|
.toStdString();
|
||||||
Settings::values.bcat_boxcat_local =
|
Settings::values.bcat_boxcat_local =
|
||||||
|
@ -1238,7 +1238,7 @@ void Config::SaveDebuggingValues() {
|
||||||
void Config::SaveServiceValues() {
|
void Config::SaveServiceValues() {
|
||||||
qt_config->beginGroup(QStringLiteral("Services"));
|
qt_config->beginGroup(QStringLiteral("Services"));
|
||||||
WriteSetting(QStringLiteral("bcat_backend"),
|
WriteSetting(QStringLiteral("bcat_backend"),
|
||||||
QString::fromStdString(Settings::values.bcat_backend), QStringLiteral("null"));
|
QString::fromStdString(Settings::values.bcat_backend), QStringLiteral("none"));
|
||||||
WriteSetting(QStringLiteral("bcat_boxcat_local"), Settings::values.bcat_boxcat_local, false);
|
WriteSetting(QStringLiteral("bcat_boxcat_local"), Settings::values.bcat_boxcat_local, false);
|
||||||
qt_config->endGroup();
|
qt_config->endGroup();
|
||||||
}
|
}
|
||||||
|
|
|
@ -457,7 +457,7 @@ void Config::ReadValues() {
|
||||||
Settings::values.yuzu_token = sdl2_config->Get("WebService", "yuzu_token", "");
|
Settings::values.yuzu_token = sdl2_config->Get("WebService", "yuzu_token", "");
|
||||||
|
|
||||||
// Services
|
// Services
|
||||||
Settings::values.bcat_backend = sdl2_config->Get("Services", "bcat_backend", "null");
|
Settings::values.bcat_backend = sdl2_config->Get("Services", "bcat_backend", "none");
|
||||||
Settings::values.bcat_boxcat_local =
|
Settings::values.bcat_boxcat_local =
|
||||||
sdl2_config->GetBoolean("Services", "bcat_boxcat_local", false);
|
sdl2_config->GetBoolean("Services", "bcat_boxcat_local", false);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue