mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-12 04:35:56 +00:00
video_core: Bump binary info search range and buffer num
This commit is contained in:
parent
6c0af8d21e
commit
462930aff9
4 changed files with 7 additions and 3 deletions
|
@ -700,7 +700,7 @@ void EmitContext::DefineOutputs() {
|
||||||
void EmitContext::DefinePushDataBlock() {
|
void EmitContext::DefinePushDataBlock() {
|
||||||
// Create push constants block for instance steps rates
|
// Create push constants block for instance steps rates
|
||||||
const Id struct_type{Name(TypeStruct(U32[1], U32[1], F32[1], F32[1], F32[1], F32[1], U32[4],
|
const Id struct_type{Name(TypeStruct(U32[1], U32[1], F32[1], F32[1], F32[1], F32[1], U32[4],
|
||||||
U32[4], U32[4], U32[4], U32[4], U32[4]),
|
U32[4], U32[4], U32[4], U32[4], U32[4], U32[2]),
|
||||||
"AuxData")};
|
"AuxData")};
|
||||||
Decorate(struct_type, spv::Decoration::Block);
|
Decorate(struct_type, spv::Decoration::Block);
|
||||||
MemberName(struct_type, PushData::Step0Index, "sr0");
|
MemberName(struct_type, PushData::Step0Index, "sr0");
|
||||||
|
@ -715,6 +715,7 @@ void EmitContext::DefinePushDataBlock() {
|
||||||
MemberName(struct_type, PushData::UdRegsIndex + 3, "ud_regs3");
|
MemberName(struct_type, PushData::UdRegsIndex + 3, "ud_regs3");
|
||||||
MemberName(struct_type, PushData::BufOffsetIndex + 0, "buf_offsets0");
|
MemberName(struct_type, PushData::BufOffsetIndex + 0, "buf_offsets0");
|
||||||
MemberName(struct_type, PushData::BufOffsetIndex + 1, "buf_offsets1");
|
MemberName(struct_type, PushData::BufOffsetIndex + 1, "buf_offsets1");
|
||||||
|
MemberName(struct_type, PushData::BufOffsetIndex + 2, "buf_offsets2");
|
||||||
MemberDecorate(struct_type, PushData::Step0Index, spv::Decoration::Offset, 0U);
|
MemberDecorate(struct_type, PushData::Step0Index, spv::Decoration::Offset, 0U);
|
||||||
MemberDecorate(struct_type, PushData::Step1Index, spv::Decoration::Offset, 4U);
|
MemberDecorate(struct_type, PushData::Step1Index, spv::Decoration::Offset, 4U);
|
||||||
MemberDecorate(struct_type, PushData::XOffsetIndex, spv::Decoration::Offset, 8U);
|
MemberDecorate(struct_type, PushData::XOffsetIndex, spv::Decoration::Offset, 8U);
|
||||||
|
@ -727,6 +728,7 @@ void EmitContext::DefinePushDataBlock() {
|
||||||
MemberDecorate(struct_type, PushData::UdRegsIndex + 3, spv::Decoration::Offset, 72U);
|
MemberDecorate(struct_type, PushData::UdRegsIndex + 3, spv::Decoration::Offset, 72U);
|
||||||
MemberDecorate(struct_type, PushData::BufOffsetIndex + 0, spv::Decoration::Offset, 88U);
|
MemberDecorate(struct_type, PushData::BufOffsetIndex + 0, spv::Decoration::Offset, 88U);
|
||||||
MemberDecorate(struct_type, PushData::BufOffsetIndex + 1, spv::Decoration::Offset, 104U);
|
MemberDecorate(struct_type, PushData::BufOffsetIndex + 1, spv::Decoration::Offset, 104U);
|
||||||
|
MemberDecorate(struct_type, PushData::BufOffsetIndex + 2, spv::Decoration::Offset, 120U);
|
||||||
push_data_block = DefineVar(struct_type, spv::StorageClass::PushConstant);
|
push_data_block = DefineVar(struct_type, spv::StorageClass::PushConstant);
|
||||||
Name(push_data_block, "push_data");
|
Name(push_data_block, "push_data");
|
||||||
interfaces.push_back(push_data_block);
|
interfaces.push_back(push_data_block);
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace Shader {
|
||||||
|
|
||||||
static constexpr size_t NumUserDataRegs = 16;
|
static constexpr size_t NumUserDataRegs = 16;
|
||||||
static constexpr size_t NumImages = 64;
|
static constexpr size_t NumImages = 64;
|
||||||
static constexpr size_t NumBuffers = 32;
|
static constexpr size_t NumBuffers = 40;
|
||||||
static constexpr size_t NumSamplers = 16;
|
static constexpr size_t NumSamplers = 16;
|
||||||
static constexpr size_t NumFMasks = 8;
|
static constexpr size_t NumFMasks = 8;
|
||||||
|
|
||||||
|
|
|
@ -603,6 +603,8 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
|
||||||
// TODO: handle proper synchronization, for now signal that update is done
|
// TODO: handle proper synchronization, for now signal that update is done
|
||||||
// immediately
|
// immediately
|
||||||
regs.cp_strmout_cntl.offset_update_done = 1;
|
regs.cp_strmout_cntl.offset_update_done = 1;
|
||||||
|
} else if (event->event_index.Value() == EventIndex::ZpassDone) {
|
||||||
|
LOG_WARNING(Render, "Unimplemented occlusion query");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ struct Liverpool {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const BinaryInfo& SearchBinaryInfo(const u32* code, size_t search_limit = 0x1000) {
|
static const BinaryInfo& SearchBinaryInfo(const u32* code, size_t search_limit = 0x2000) {
|
||||||
constexpr u32 token_mov_vcchi = 0xBEEB03FF;
|
constexpr u32 token_mov_vcchi = 0xBEEB03FF;
|
||||||
|
|
||||||
if (code[0] == token_mov_vcchi) {
|
if (code[0] == token_mov_vcchi) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue