mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-28 22:06:59 +01:00
test: verify native vector descriptor loads in structured loops
This commit is contained in:
+10
-11
@@ -7933,8 +7933,7 @@ void TestNewShaderRecompilerCfgLoopHeaderDynamicScalarBufferLoadStructured() {
|
|||||||
CheckSpirvBinaryValidates(result.spirv);
|
CheckSpirvBinaryValidates(result.spirv);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if KYTY_PLATFORM != KYTY_PLATFORM_WINDOWS
|
void TestNewShaderRecompilerCfgLoopHeaderBufferLoadStructured() {
|
||||||
void TestNewShaderRecompilerCfgLoopHeaderBufferLoadDispatcher() {
|
|
||||||
const uint32_t shader[] = {
|
const uint32_t shader[] = {
|
||||||
EncodeSMovB32(0, 128), // preheader: s0 = 0
|
EncodeSMovB32(0, 128), // preheader: s0 = 0
|
||||||
EncodeMubuf0(0x0c),
|
EncodeMubuf0(0x0c),
|
||||||
@@ -7947,13 +7946,15 @@ void TestNewShaderRecompilerCfgLoopHeaderBufferLoadDispatcher() {
|
|||||||
0xbf810000u,
|
0xbf810000u,
|
||||||
};
|
};
|
||||||
|
|
||||||
auto options = MakeCompileOptions(ShaderType::Compute);
|
const auto result = RecompileForTest(shader, MakeCompileOptions(ShaderType::Compute));
|
||||||
options.dump_ir = true;
|
Check(result.program.info.uses_dma && !result.program.dispatcher_fallback &&
|
||||||
ExpectFatal([&] { (void)RecompileForTest(shader, options); },
|
SpirvContainsOpcode(result.spirv, 246),
|
||||||
"self-modifying vector-buffer descriptor did not terminate "
|
"loop-carried vector descriptor lost its structured GPU loop");
|
||||||
"compilation");
|
Check(result.program.info.buffers.size() == 1u && result.program.info.buffers[0].written &&
|
||||||
|
result.resources.flattened_srt.empty() && result.resources.specialization_reads.empty(),
|
||||||
|
"loop-carried vector descriptor was evaluated on the host");
|
||||||
|
CheckSpirvBinaryValidates(result.spirv);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void TestNewShaderRecompilerCfgLoopHeaderDsAppendConsumeStructured() {
|
void TestNewShaderRecompilerCfgLoopHeaderDsAppendConsumeStructured() {
|
||||||
const uint32_t shader[] = {
|
const uint32_t shader[] = {
|
||||||
@@ -14657,9 +14658,7 @@ int main() {
|
|||||||
TestNewShaderRecompilerCfgPostEndTargetMergePS();
|
TestNewShaderRecompilerCfgPostEndTargetMergePS();
|
||||||
TestNewShaderRecompilerCfgLoopBreakContinue();
|
TestNewShaderRecompilerCfgLoopBreakContinue();
|
||||||
TestNewShaderRecompilerCfgLoopHeaderDynamicScalarBufferLoadStructured();
|
TestNewShaderRecompilerCfgLoopHeaderDynamicScalarBufferLoadStructured();
|
||||||
#if KYTY_PLATFORM != KYTY_PLATFORM_WINDOWS
|
TestNewShaderRecompilerCfgLoopHeaderBufferLoadStructured();
|
||||||
TestNewShaderRecompilerCfgLoopHeaderBufferLoadDispatcher();
|
|
||||||
#endif
|
|
||||||
TestNewShaderRecompilerCfgLoopHeaderDsAppendConsumeStructured();
|
TestNewShaderRecompilerCfgLoopHeaderDsAppendConsumeStructured();
|
||||||
TestNewShaderRecompilerCfgLoopHeaderDsReadStructured();
|
TestNewShaderRecompilerCfgLoopHeaderDsReadStructured();
|
||||||
TestNewShaderRecompilerCfgLoopHeaderDsRead2B64Structured();
|
TestNewShaderRecompilerCfgLoopHeaderDsRead2B64Structured();
|
||||||
|
|||||||
Reference in New Issue
Block a user