mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-31 09:28:29 +00:00
shader: treat call-target registers with several reaching definitions as GPU-selected
This commit is contained in:
1 parent
ee034be4b2
commit
abd77f574c
4 files changed
+24
-10
No files matched your search
@@ -11125,6 +11125,14 @@ void TestMemoryFedScalarLeafCall() {
|
||||
const auto skipped = PrepareShaderSource(gpu_callable, options);
|
||||
Check(skipped.unsupported_call_pc == 12u && skipped.calls.empty(),
|
||||
"GPU-buffer callable did not report its unsupported call site");
|
||||
// The table index s20 is loop-carried, so two definitions reach the call.
|
||||
const uint32_t loop_callable[] = {EncodeSmem0(0x08, 20, 0), 0xfa000000u,
|
||||
EncodeSmem0(0x09, 14, 0), 20u << 25u, EncodeSop1(0x21, 14, 14),
|
||||
EncodeSmem0(0x08, 20, 0), 20u << 25u, EncodeSopc(0x07, 20, 128),
|
||||
EncodeSopp(0x05, 0xfff9u), EncodeSopp(0x01)};
|
||||
const auto loop_skipped = PrepareShaderSource(loop_callable, options);
|
||||
Check(loop_skipped.unsupported_call_pc == 16u && loop_skipped.calls.empty(),
|
||||
"loop-selected GPU-buffer callable did not report its unsupported call site");
|
||||
auto source = PrepareShaderSource(shader, options);
|
||||
Check(source.calls.size() == 1 && source.decoded.has_swap_pc &&
|
||||
source.decoded.instructions[source.calls.front().instruction].branch_target == UINT32_MAX,
|
||||
|
||||
Reference in new issue
Block a user