mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-20 02:47:02 +02:00
format src and tests with clang-format
This commit is contained in:
@@ -199,13 +199,13 @@ void TestNestedLoopPhiConvergence() {
|
||||
program.blocks[3].predecessors = {2};
|
||||
program.blocks[3].successors = {1};
|
||||
Instruction increment;
|
||||
increment.op = Opcode::IAddU32;
|
||||
increment.dst = Sgpr(0);
|
||||
increment.src[0] = Sgpr(0);
|
||||
increment.src[1] = Imm(1);
|
||||
increment.src_count = 2;
|
||||
program.blocks[0].instructions = {increment};
|
||||
program.blocks[2].instructions = {BufferUse(4, 0)};
|
||||
increment.op = Opcode::IAddU32;
|
||||
increment.dst = Sgpr(0);
|
||||
increment.src[0] = Sgpr(0);
|
||||
increment.src[1] = Imm(1);
|
||||
increment.src_count = 2;
|
||||
program.blocks[0].instructions = {increment};
|
||||
program.blocks[2].instructions = {BufferUse(4, 0)};
|
||||
|
||||
std::string error;
|
||||
Check(BuildScalarProvenance(program, &error), error.c_str());
|
||||
@@ -443,19 +443,19 @@ void TestReadLaneDescriptorSpill() {
|
||||
program.blocks[0].instructions.push_back(MoveImmediate(0xb0, 84, 0));
|
||||
program.blocks[0].instructions.push_back(ReadLane(0x510, 0, 11, 0));
|
||||
Instruction sample;
|
||||
sample.pc = 0x868;
|
||||
sample.op = Opcode::ImageSample;
|
||||
sample.memory.kind = ResourceKind::Image;
|
||||
sample.memory.resource = 0;
|
||||
sample.memory.sampler = 4;
|
||||
sample.pc = 0x868;
|
||||
sample.op = Opcode::ImageSample;
|
||||
sample.memory.kind = ResourceKind::Image;
|
||||
sample.memory.resource = 0;
|
||||
sample.memory.sampler = 4;
|
||||
sample.memory.image_dimension =
|
||||
Libs::Graphics::ShaderRecompiler::Decoder::ImageDimension::Dim2D;
|
||||
program.blocks[0].instructions.push_back(sample);
|
||||
|
||||
std::string error;
|
||||
Check(BuildScalarProvenance(program, &error) && BuildSrtPlan(program, &error), error.c_str());
|
||||
const auto source_id = program.blocks[0].instructions.back().memory.resource_source;
|
||||
const auto* source = GetDescriptorSource(program, source_id);
|
||||
const auto source_id = program.blocks[0].instructions.back().memory.resource_source;
|
||||
const auto* source = GetDescriptorSource(program, source_id);
|
||||
Check(source != nullptr && DescriptorSourceResolved(program, source_id),
|
||||
"readlane descriptor spill was not resolved");
|
||||
Check(Value(program, source->dwords[0]).op == ScalarValueOp::ReadConstBuffer,
|
||||
@@ -463,7 +463,7 @@ void TestReadLaneDescriptorSpill() {
|
||||
std::vector<uint32_t> user_data(28);
|
||||
SetPointer(&user_data, 24, table.data());
|
||||
user_data[26] = sizeof(table);
|
||||
DescriptorValue descriptor;
|
||||
DescriptorValue descriptor;
|
||||
const SrtRuntime runtime {user_data, 0, ReadHostMemory, nullptr};
|
||||
Check(EvaluateDescriptorSource(program, source_id, sample.pc, runtime, descriptor, &error),
|
||||
error.c_str());
|
||||
@@ -477,13 +477,13 @@ void TestReadLaneVectorOverwriteInvalidatesSpill() {
|
||||
program.user_data_count = 8;
|
||||
program.blocks.resize(1);
|
||||
Instruction overwrite;
|
||||
overwrite.pc = 4;
|
||||
overwrite.op = Opcode::MoveU32;
|
||||
overwrite.dst = Vgpr(11);
|
||||
overwrite.src[0] = Imm(0);
|
||||
overwrite.src_count = 1;
|
||||
program.blocks[0].instructions = {WriteLane(0, 11, 4, 0), overwrite,
|
||||
ReadLane(8, 0, 11, 0), BufferUse(12, 0)};
|
||||
overwrite.pc = 4;
|
||||
overwrite.op = Opcode::MoveU32;
|
||||
overwrite.dst = Vgpr(11);
|
||||
overwrite.src[0] = Imm(0);
|
||||
overwrite.src_count = 1;
|
||||
program.blocks[0].instructions = {WriteLane(0, 11, 4, 0), overwrite, ReadLane(8, 0, 11, 0),
|
||||
BufferUse(12, 0)};
|
||||
|
||||
std::string error;
|
||||
Check(BuildScalarProvenance(program, &error), error.c_str());
|
||||
@@ -545,13 +545,13 @@ void TestReadLaneWideAndRelativeWritesInvalidateSpill() {
|
||||
program.user_data_count = 8;
|
||||
program.blocks.resize(1);
|
||||
Instruction overwrite;
|
||||
overwrite.pc = 4;
|
||||
overwrite.op = op;
|
||||
overwrite.dst = Vgpr(11);
|
||||
overwrite.src[0] = Imm(0);
|
||||
overwrite.src_count = 1;
|
||||
program.blocks[0].instructions = {WriteLane(0, 12, 4, 0), overwrite,
|
||||
ReadLane(8, 0, 12, 0), BufferUse(12, 0)};
|
||||
overwrite.pc = 4;
|
||||
overwrite.op = op;
|
||||
overwrite.dst = Vgpr(11);
|
||||
overwrite.src[0] = Imm(0);
|
||||
overwrite.src_count = 1;
|
||||
program.blocks[0].instructions = {WriteLane(0, 12, 4, 0), overwrite, ReadLane(8, 0, 12, 0),
|
||||
BufferUse(12, 0)};
|
||||
|
||||
std::string error;
|
||||
Check(BuildScalarProvenance(program, &error), error.c_str());
|
||||
@@ -585,12 +585,12 @@ void TestReadLaneModuloAndDynamicLane() {
|
||||
dynamic.wave_size = 64;
|
||||
dynamic.user_data_count = 8;
|
||||
dynamic.blocks.resize(1);
|
||||
auto write = WriteLane(0, 11, 4, 0);
|
||||
write.src[1] = Sgpr(7);
|
||||
auto write = WriteLane(0, 11, 4, 0);
|
||||
write.src[1] = Sgpr(7);
|
||||
dynamic.blocks[0].instructions = {write, ReadLane(4, 0, 11, 0), BufferUse(8, 0)};
|
||||
Check(BuildScalarProvenance(dynamic, &error), error.c_str());
|
||||
Check(!DescriptorSourceResolved(
|
||||
dynamic, dynamic.blocks[0].instructions.back().memory.resource_source),
|
||||
Check(!DescriptorSourceResolved(dynamic,
|
||||
dynamic.blocks[0].instructions.back().memory.resource_source),
|
||||
"dynamic writelane selector retained unsafe lane provenance");
|
||||
}
|
||||
|
||||
@@ -599,9 +599,8 @@ void TestReadLaneEliminationSnapshotsWriteValue() {
|
||||
program.wave_size = 64;
|
||||
program.user_data_count = 8;
|
||||
program.blocks.resize(1);
|
||||
program.blocks[0].instructions = {
|
||||
MoveImmediate(0, 4, 0x12345678u), WriteLane(4, 11, 4, 4),
|
||||
MoveImmediate(8, 4, 0xdeadbeefu), ReadLane(12, 0, 11, 4)};
|
||||
program.blocks[0].instructions = {MoveImmediate(0, 4, 0x12345678u), WriteLane(4, 11, 4, 4),
|
||||
MoveImmediate(8, 4, 0xdeadbeefu), ReadLane(12, 0, 11, 4)};
|
||||
|
||||
std::string error;
|
||||
Check(BuildScalarProvenance(program, &error), error.c_str());
|
||||
@@ -675,13 +674,12 @@ void TestReadLaneEliminationHonorsVectorInvalidation() {
|
||||
program.user_data_count = 8;
|
||||
program.blocks.resize(1);
|
||||
Instruction overwrite;
|
||||
overwrite.pc = 4;
|
||||
overwrite.op = Opcode::MoveU32;
|
||||
overwrite.dst = Vgpr(11);
|
||||
overwrite.src[0] = Imm(0);
|
||||
overwrite.src_count = 1;
|
||||
program.blocks[0].instructions = {WriteLane(0, 11, 4, 4), overwrite,
|
||||
ReadLane(8, 0, 11, 4)};
|
||||
overwrite.pc = 4;
|
||||
overwrite.op = Opcode::MoveU32;
|
||||
overwrite.dst = Vgpr(11);
|
||||
overwrite.src[0] = Imm(0);
|
||||
overwrite.src_count = 1;
|
||||
program.blocks[0].instructions = {WriteLane(0, 11, 4, 4), overwrite, ReadLane(8, 0, 11, 4)};
|
||||
|
||||
std::string error;
|
||||
Check(BuildScalarProvenance(program, &error), error.c_str());
|
||||
@@ -696,10 +694,10 @@ void TestReadLaneEliminationFoldsScalarLaneSelector() {
|
||||
program.wave_size = 32;
|
||||
program.user_data_count = 8;
|
||||
program.blocks.resize(1);
|
||||
auto write = WriteLane(4, 11, 4, 0);
|
||||
write.src[1] = Sgpr(7);
|
||||
auto read = ReadLane(8, 0, 11, 0);
|
||||
read.src[1] = Sgpr(7);
|
||||
auto write = WriteLane(4, 11, 4, 0);
|
||||
write.src[1] = Sgpr(7);
|
||||
auto read = ReadLane(8, 0, 11, 0);
|
||||
read.src[1] = Sgpr(7);
|
||||
program.blocks[0].instructions = {MoveImmediate(0, 7, 33), write, read};
|
||||
|
||||
std::string error;
|
||||
@@ -840,8 +838,7 @@ void TestDynamicReadIsNotFlattened() {
|
||||
DescriptorValue descriptor;
|
||||
const auto source = program.blocks[0].instructions[1].memory.resource_source;
|
||||
const SrtRuntime runtime {user_data, 0, ReadHostMemory, nullptr};
|
||||
Check(EvaluateDescriptorSource(program, source, 4, runtime, descriptor, &error),
|
||||
error.c_str());
|
||||
Check(EvaluateDescriptorSource(program, source, 4, runtime, descriptor, &error), error.c_str());
|
||||
Check(descriptor.dwords[0] == table[1], "dynamic ReadConst evaluated the wrong dword");
|
||||
}
|
||||
|
||||
@@ -1144,46 +1141,43 @@ void TestCommonScalarPointerOps() {
|
||||
void TestBitFieldMaskDescriptor() {
|
||||
Program program;
|
||||
program.blocks.resize(1);
|
||||
auto mask = MoveImmediate(4, 29, 0);
|
||||
mask.op = Opcode::BitFieldMaskU32;
|
||||
mask.src[0] = Imm(12);
|
||||
mask.src[1] = Imm(12);
|
||||
mask.src_count = 2;
|
||||
auto high = MoveImmediate(8, 30, 0x05500000u);
|
||||
high.op = Opcode::MoveU64;
|
||||
program.blocks[0].instructions = {MoveImmediate(0, 28, 0x92u), mask, high,
|
||||
BufferUse(12, 28)};
|
||||
auto mask = MoveImmediate(4, 29, 0);
|
||||
mask.op = Opcode::BitFieldMaskU32;
|
||||
mask.src[0] = Imm(12);
|
||||
mask.src[1] = Imm(12);
|
||||
mask.src_count = 2;
|
||||
auto high = MoveImmediate(8, 30, 0x05500000u);
|
||||
high.op = Opcode::MoveU64;
|
||||
program.blocks[0].instructions = {MoveImmediate(0, 28, 0x92u), mask, high, BufferUse(12, 28)};
|
||||
|
||||
std::string error;
|
||||
Check(BuildScalarProvenance(program, &error) && BuildSrtPlan(program, &error), error.c_str());
|
||||
DescriptorValue descriptor;
|
||||
DescriptorValue descriptor;
|
||||
const SrtRuntime runtime {{}, 0, nullptr, nullptr};
|
||||
Check(EvaluateDescriptorSource(program,
|
||||
program.blocks[0].instructions.back().memory.resource_source,
|
||||
16, runtime, descriptor, &error),
|
||||
program.blocks[0].instructions.back().memory.resource_source, 16,
|
||||
runtime, descriptor, &error),
|
||||
error.c_str());
|
||||
Check(descriptor.dwords[0] == 0x92u && descriptor.dwords[1] == 0x00fff000u &&
|
||||
descriptor.dwords[2] == 0x05500000u && descriptor.dwords[3] == 0,
|
||||
"production sampler bit-field mask evaluated incorrectly");
|
||||
|
||||
mask.src[0] = Imm(0);
|
||||
program.blocks[0].instructions = {MoveImmediate(0, 28, 0x92u), mask, high,
|
||||
BufferUse(12, 28)};
|
||||
mask.src[0] = Imm(0);
|
||||
program.blocks[0].instructions = {MoveImmediate(0, 28, 0x92u), mask, high, BufferUse(12, 28)};
|
||||
Check(BuildScalarProvenance(program, &error) && BuildSrtPlan(program, &error), error.c_str());
|
||||
Check(EvaluateDescriptorSource(program,
|
||||
program.blocks[0].instructions.back().memory.resource_source,
|
||||
12, runtime, descriptor, &error),
|
||||
program.blocks[0].instructions.back().memory.resource_source, 12,
|
||||
runtime, descriptor, &error),
|
||||
error.c_str());
|
||||
Check(descriptor.dwords[1] == 0, "zero-width bit-field mask was not zero");
|
||||
|
||||
mask.src[0] = Imm(31);
|
||||
mask.src[1] = Imm(31);
|
||||
program.blocks[0].instructions = {MoveImmediate(0, 28, 0x92u), mask, high,
|
||||
BufferUse(12, 28)};
|
||||
mask.src[0] = Imm(31);
|
||||
mask.src[1] = Imm(31);
|
||||
program.blocks[0].instructions = {MoveImmediate(0, 28, 0x92u), mask, high, BufferUse(12, 28)};
|
||||
Check(BuildScalarProvenance(program, &error) && BuildSrtPlan(program, &error), error.c_str());
|
||||
Check(EvaluateDescriptorSource(program,
|
||||
program.blocks[0].instructions.back().memory.resource_source,
|
||||
12, runtime, descriptor, &error),
|
||||
program.blocks[0].instructions.back().memory.resource_source, 12,
|
||||
runtime, descriptor, &error),
|
||||
error.c_str());
|
||||
Check(descriptor.dwords[1] == 0x80000000u,
|
||||
"maximum bit-field mask count/offset evaluated incorrectly");
|
||||
|
||||
Reference in New Issue
Block a user