mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-22 01:54:31 +00:00
Misc fixes (#3171)
This commit is contained in:
parent
0b72a795eb
commit
bd0102c8d0
@ -14,7 +14,7 @@ CopyShaderData ParseCopyShader(std::span<const u32> code) {
|
|||||||
constexpr u32 token_mov_vcchi = 0xBEEB03FF;
|
constexpr u32 token_mov_vcchi = 0xBEEB03FF;
|
||||||
ASSERT_MSG(code[0] == token_mov_vcchi, "First instruction is not s_mov_b32 vcc_hi, #imm");
|
ASSERT_MSG(code[0] == token_mov_vcchi, "First instruction is not s_mov_b32 vcc_hi, #imm");
|
||||||
|
|
||||||
std::array<s32, 32> offsets{};
|
std::array<s32, 64> offsets{};
|
||||||
offsets.fill(-1);
|
offsets.fill(-1);
|
||||||
|
|
||||||
std::array<s32, 256> sources{};
|
std::array<s32, 256> sources{};
|
||||||
@ -52,6 +52,8 @@ CopyShaderData ParseCopyShader(std::span<const u32> code) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Gcn::Opcode::BUFFER_LOAD_DWORD: {
|
case Gcn::Opcode::BUFFER_LOAD_DWORD: {
|
||||||
|
ASSERT_MSG(inst.src[1].code < offsets.size(),
|
||||||
|
"offsets array for geometry shaders is too short");
|
||||||
offsets[inst.src[1].code] = inst.control.mubuf.offset;
|
offsets[inst.src[1].code] = inst.control.mubuf.offset;
|
||||||
if (inst.src[3].field != Gcn::OperandField::ConstZero) {
|
if (inst.src[3].field != Gcn::OperandField::ConstZero) {
|
||||||
const u32 index = inst.src[3].code;
|
const u32 index = inst.src[3].code;
|
||||||
@ -65,7 +67,7 @@ CopyShaderData ParseCopyShader(std::span<const u32> code) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (last_attr != IR::Attribute::Position0) {
|
if (!IsPosition(last_attr)) {
|
||||||
data.num_attrs = static_cast<u32>(last_attr) - static_cast<u32>(IR::Attribute::Param0) + 1;
|
data.num_attrs = static_cast<u32>(last_attr) - static_cast<u32>(IR::Attribute::Param0) + 1;
|
||||||
const auto it = data.attr_map.begin();
|
const auto it = data.attr_map.begin();
|
||||||
const u32 comp_stride = std::next(it)->first - it->first;
|
const u32 comp_stride = std::next(it)->first - it->first;
|
||||||
|
@ -699,7 +699,7 @@ struct PM4CmdWaitRegMem {
|
|||||||
struct PM4CmdWriteData {
|
struct PM4CmdWriteData {
|
||||||
PM4Type3Header header;
|
PM4Type3Header header;
|
||||||
union {
|
union {
|
||||||
BitField<8, 11, u32> dst_sel;
|
BitField<8, 4, u32> dst_sel;
|
||||||
BitField<16, 1, u32> wr_one_addr;
|
BitField<16, 1, u32> wr_one_addr;
|
||||||
BitField<20, 1, u32> wr_confirm;
|
BitField<20, 1, u32> wr_confirm;
|
||||||
BitField<30, 1, u32> engine_sel;
|
BitField<30, 1, u32> engine_sel;
|
||||||
|
Loading…
Reference in New Issue
Block a user