mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-21 19:36:55 +02:00
test: align scalar image tables and buffer reads with PS5 semantics
This commit is contained in:
@@ -14335,8 +14335,15 @@ void TestBoundedScalarMaterialImageKeys() {
|
|||||||
Check(!MaterializeResources(plan, runtime, snapshot, specialization) && memory.keys == 0,
|
Check(!MaterializeResources(plan, runtime, snapshot, specialization) && memory.keys == 0,
|
||||||
"scalar material byte range escaped V# bounds");
|
"scalar material byte range escaped V# bounds");
|
||||||
memory = {.mixed = true};
|
memory = {.mixed = true};
|
||||||
Check(!MaterializeResources(plan, runtime, snapshot, specialization),
|
Check(MaterializeResources(plan, runtime, snapshot, specialization) &&
|
||||||
"selected material fields bypassed image compatibility");
|
snapshot.images.size() == 4 && specialization.images.size() == 4,
|
||||||
|
"selected material fields rejected mixed native numeric classes");
|
||||||
|
for (uint32_t i = 0; i < snapshot.images.size(); ++i) {
|
||||||
|
Check(specialization.images[i].numeric_class ==
|
||||||
|
(snapshot.images[i].dwords[0] == 5588u
|
||||||
|
? Prospero::TextureNumericClass::Uint : Prospero::TextureNumericClass::Float),
|
||||||
|
"selected material fields lost a candidate's native numeric class");
|
||||||
|
}
|
||||||
memory = {};
|
memory = {};
|
||||||
Check(MaterializeResources(plan, runtime, snapshot, specialization),
|
Check(MaterializeResources(plan, runtime, snapshot, specialization),
|
||||||
"native scalar material image selection did not recover after rejected candidates");
|
"native scalar material image selection did not recover after rejected candidates");
|
||||||
@@ -14571,7 +14578,8 @@ void TestSrtWalkerRealSBufferTranslation() {
|
|||||||
|
|
||||||
user_data[10] = 3 * sizeof(uint32_t);
|
user_data[10] = 3 * sizeof(uint32_t);
|
||||||
const auto bounds_walked = ShaderRecompiler::IR::SrtWalker(plan, runtime).RefreshFlatBuffer(flat);
|
const auto bounds_walked = ShaderRecompiler::IR::SrtWalker(plan, runtime).RefreshFlatBuffer(flat);
|
||||||
Check(!bounds_walked, "real S_BUFFER_LOAD walk ignored descriptor bounds");
|
Check(bounds_walked && flat == std::vector<uint32_t>{table[0], table[1], table[2], 0u},
|
||||||
|
"real S_BUFFER_LOAD walk did not zero only the out-of-bounds DWORD");
|
||||||
CheckFlattenedReadSlots(
|
CheckFlattenedReadSlots(
|
||||||
ir, 4, "real S_BUFFER_LOAD patch used the wrong flat offsets");
|
ir, 4, "real S_BUFFER_LOAD patch used the wrong flat offsets");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user