Repository navigation
feat(agc): run the pixel program per sample for PS_ITER_SAMPLE - #5673
Conversation
|
Runs for this PR at head
No difference between the two GPUs. AI-assisted (Claude Code). |
|
AMD and NVIDIA runs for this PR at head
No title run. AI-assisted: yes (Claude Code ran the builds and tests). |
PA_SC_MODE_CNTL_1 bit 16 (PS_ITER_SAMPLE) was rejected with the other scan control bits. On a multisampled draw it now enables Vulkan sample shading with a minimum rate of 1.0, and the draw throws when the device lacks sampleRateShading. On a single-sample draw the bit has no effect and is dropped. The flag is part of the pipeline, pipeline library and draw register keys. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Rebased onto main (adjacency conflict in |
f2c5486 to
af7ca4a
Compare
|
Thanks @adriadam10 for the rebase onto main. It matches the one I made locally: the only conflict was AI-assisted (Claude Code). |
|
Re-checked the author's rebase on current main: same patch as the previous head, only context lines differ. |
What
PA_SC_MODE_CNTL_1bit 16 (PS_ITER_SAMPLE) was refused together with the other scan-control bits ("sample iteration, primitive discard or out-of-order rasterization"). Metal Gear Solid 4 programs0x293 = 0x06030000, so every draw failed on it.State::perSampleShading, which setssampleShadingEnablewithminSampleShading = 1.0in the pipeline's multisample state. The draw throws when the device lackssampleRateShading.PS_ITER_SAMPLEbits 16-16, next toMULTI_SHADER_ENGINE_PRIM_DISCARD_ENABLEat 17). The debt entry indocs/dev/debt/libSceAgcDriver.mdrecords that per-sample execution on the console is taken from the register name and Vulkan's definition, not measured.Tested
Windows 11, RTX 3080 (driver 610.74), WinLibs GCC 15.2.0 r7, Release.
agc_driver_graphics: the old assertion that0x06030000is refused becomes: a single-sample target accepts it and decodes without sample shading; a 2x target with0x293 = 0x10000is accepted by the precheck and decodes withperSampleShading; without the bit it does not. With the mask change reverted the test fails ("per-sample iteration of a single-sample target was rejected"); with it the test passes.agcctest tests pass (rebased on main f74ec63; one skipped before the rebase,agc_driver_stencil_ref_export, missing device feature).python tools/check_conventions.py --base origin/mainandtools/check_test_registration.pypass.Checklist
main; no other open PR implements the same functions (searched PR titles/bodies and the tree for PS_ITER_SAMPLE, PA_SC_MODE_CNTL_1, sampleShading on 2026-10-14).mdfiles or images added to the repository🤖 Generated with Claude Code