tests: preserve descriptor phi rejection coverage for writable buffers

This commit is contained in:
nmzik committed 2026-10-04 18:39:34 +04:00
1 parent 5f01308b20
commit 919c058fee
1 file changed
+6 -6
+6 -6
View File
@@ -2352,7 +2352,7 @@ void TestDynamicSrtReadRemainsExplicit() {
"unified memory-offset layout is inconsistent"); "unified memory-offset layout is inconsistent");
} }
void TestPhiValidation() { void TestWritableDescriptorPhi() {
Fixture fixture; Fixture fixture;
auto *left = fixture.block; auto *left = fixture.block;
auto *right = fixture.AddBlock(); auto *right = fixture.AddBlock();
@@ -2370,16 +2370,16 @@ void TestPhiValidation() {
MemoryFlags{0, 20}, merge); MemoryFlags{0, 20}, merge);
MemoryInfo memory; MemoryInfo memory;
memory.kind = ResourceKind::Buffer; memory.kind = ResourceKind::Buffer;
fixture.Emit(ValueOpcode::LoadBufferU32, fixture.Emit(ValueOpcode::StoreBufferU32,
{handle, Value(0u), Value(0u), Value(0u), Value(true)}, {handle, Value(0u), Value(0u), Value(0u), Value(1u), Value(true)},
fixture.AddMemory(memory, 20), merge); fixture.AddMemory(memory, 20), merge);
CheckFatal([&] { fixture.PlanAndTrack(); }, "not a valid runtime value", CheckFatal([&] { fixture.PlanAndTrack(); }, "not a valid runtime value",
"control-dependent descriptor phi was accepted"); "control-dependent writable descriptor phi was accepted");
Check(!fixture.program.resource_tracking_complete && Check(!fixture.program.resource_tracking_complete &&
fixture.program.info.buffers.empty() && fixture.program.info.buffers.empty() &&
fixture.program.descriptor_sources.empty(), fixture.program.descriptor_sources.empty(),
"control-dependent descriptor phi was not rejected transactionally"); "control-dependent writable descriptor phi was not rejected transactionally");
} }
ResourcePlan ConditionalSamplerPlan(bool diamond, bool reverse, bool reverse_phi, ResourcePlan ConditionalSamplerPlan(bool diamond, bool reverse, bool reverse_phi,
@@ -3474,7 +3474,7 @@ int main() {
Run("draw-uniform scalar image", TestUniformScalarBufferImage); Run("draw-uniform scalar image", TestUniformScalarBufferImage);
Run("SRT runtime", TestSrtFlatteningAndRuntimeMemoization); Run("SRT runtime", TestSrtFlatteningAndRuntimeMemoization);
Run("dynamic SRT", TestDynamicSrtReadRemainsExplicit); Run("dynamic SRT", TestDynamicSrtReadRemainsExplicit);
Run("phi validation", TestPhiValidation); Run("writable descriptor phi", TestWritableDescriptorPhi);
Run("conditional sampler phi", TestConditionalSamplerPhi); Run("conditional sampler phi", TestConditionalSamplerPhi);
Run("finite image phi cycle", TestFiniteImagePhiCycle); Run("finite image phi cycle", TestFiniteImagePhiCycle);
Run("finite image bit scan sentinel", TestFiniteImageBitScanSentinel); Run("finite image bit scan sentinel", TestFiniteImageBitScanSentinel);