Skip to content

fix(agc): draw geometry programs with the last provoking vertex - #7374

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
thuanquang:fix/mesh-last-provoking-vertex
Oct 18, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
thuanquang:fix/mesh-last-provoking-vertex

Conversation

@thuanquang

@thuanquang thuanquang commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

What

TEKKEN DARK RESURRECTION (PPSA31371) still stops on main after #7251 and #7252. @cavazzatommaso's capture on #7118 shows the refused draw: a geometry program on the mesh path (ShaderPath::Geometry) in last provoking vertex mode, with two smooth per-vertex pixel inputs. ValidateProvokingVertex refuses every mesh-path draw in that mode:

[gpu] driver failure: AGC graphics: last provoking vertex is unsupported for generated primitive pipelines

@MarcZX100 asked on #7118 which topology the capture's LINE_LIST is, and what decides the values the PerVertexKHR inputs read.

  • state.topology and mesh.inputPrimitive both come from the draw's primitive type (register 0x242), so LINE_LIST is the geometry program's input.
  • Its output is triangles: VGT_GS_OUT_PRIM_TYPE 2 gives outputPrimitiveSize 3 and OutputTrianglesEXT.
  • The generated mesh shader writes each primitive with the vertex indices of the guest program's own exp prim, in the guest's order. The emulator does not assemble the output primitives.

For primitives a mesh shader emits, Vulkan reads PerVertexKHR inputs as if the primitives were drawn as lists, and the list rows of the vertex order table are the same in both modes (Barycentric Interpolation). So the two smooth inputs read the same vertices in last mode as in first mode. Flat inputs take the last index of each primitive, because Vulkan picks the provoking vertex from the mesh output topology and the pipeline's mode (Flat Shading). VkPipelineRasterizationProvokingVertexStateCreateInfoEXT is already chained into mesh pipelines too.

The one value the emulator picks itself is the per-primitive layer, which MeshConfiguration::provokingVertex took from vertex 0 in both modes. DecodeShaderStages now sets that field to the last vertex of the output primitive when PA_SU_SC_MODE_CNTL.PROVOKING_VTX_LAST is set. The field is already part of every mesh cache key.

ValidateProvokingVertex now lets a mesh-path geometry draw through in last mode. These still throw:

  • tessellation and barycentric patches;
  • explicit per-vertex flat inputs, as on the vertex path;
  • triangle strips or fans assembled for a geometry program. The emulator builds their input triangles itself (odd strip triangles as {i+1, i, i+2}, fans as {i+1, i+2, 0}), and I have not checked what the console hands the program in last mode.

Assumption, not measured: under bit 19 the console takes the last index of an exported primitive as its provoking vertex, as it does for native primitives. The debt entry says so.

A program the driver prepared at registration was prepared with no rasterizer state, so with provoking vertex 0. A last-mode draw of it compiles its own variant at the draw, with the usual "no artifact prepared at registration" line. On main that draw threw.

Overlap: #6612 moves the MeshConfiguration construction in DecodeShaderStages into a helper that still passes 0, so whichever of the two lands second has to carry the bit-19 read into it. #6741 and #7332 edit the same debt line ("throws for generated mesh or tessellation primitives").

Tested

Windows 11 26200, AMD Radeon RX 6700 XT (gfx1031), driver 32.0.21045.5002, WinLibs GCC 15.2.0 r7, Release, BUILD_TESTING=ON, ANYPS5_REQUIRE_VULKAN=1:

  • New agc_driver_mesh_provoking_vertex, a full PM4 draw through the guest NGG geometry program from MeshGeometryFixture.hpp. The triangle's vertices are red, green and blue.
    • A pixel shader reading a FLAT_SHADE input through v_interp_mov_f32 P0 must draw red in first mode and blue in last mode (first, last, first).
    • A pixel shader interpolating a smooth input (v_interp_p1_f32/v_interp_p2_f32, compiled to per-vertex values as the title's inputs are) must draw the same pixels, bit for bit, in both modes.
    • On main it fails with the title's message. With this change it passes.
    • It skips on llvmpipe like the other mesh execution tests, so CI does not run it.
  • agc_driver_graphics:
    • DecodeState and DecodeShaderStages give provoking vertex 0 without bit 19, and with it 2 for triangle-strip output and 1 for line-strip output.
    • ValidateProvokingVertex accepts mesh draws with point, line and triangle-list input and refuses strip or fan input, tessellation and flat per-vertex inputs.
    • On main it fails with last provoking vertex is unsupported for generated primitive pipelines.
  • Full ctest --parallel 4 --timeout 120 on main 2626e5ee7 with this change: 1462 tests. The only failures are three known on this GPU and unrelated to this change: agc_driver_lds_mixed_width_atomics (fix(shader): release the LDS lock with an exchange and drop fences inside it #6976), agc_driver_lds_lock_budget (AGC: AMD device-backed LDS lock-budget case returns half of expected sum #7344) and agc_driver_layered_volume_vertex_no_gpl (AMD Windows: alpha-to-coverage still fails at the original executable path after #6436 #4768, which passed in the same run on 0bb238b4a).
  • python tools/check_conventions.py --base origin/main with this title and body passes.
  • Not tested:
    • the title (@cavazzatommaso, would you run this branch?);
    • the console's choice of vertex;
    • a line-list-in, strip-out geometry program like the title's (the fixture program takes triangle lists);
    • the layer of a layered geometry draw in last mode;
    • other GPUs and drivers.

Checklist

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
PR 6612 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp L949
PR 6741 docs/dev/debt/libSceAgcDriver.md L109
PR 6801 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp L889
PR 7426 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp L113
docs/dev/debt/libSceAgcDriver.md L109

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 1191 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
PR 1395 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 2434 docs/dev/debt/libSceAgcDriver.md
PR 4040 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 4448 docs/dev/debt/libSceAgcDriver.md
PR 4650 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 5058 docs/dev/debt/libSceAgcDriver.md
PR 5372 docs/dev/debt/libSceAgcDriver.md
PR 5441 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 5499 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 5500 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 5609 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
PR 5925 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 5999 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6054 docs/dev/debt/libSceAgcDriver.md
PR 6188 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6194 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6222 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6223 docs/dev/debt/libSceAgcDriver.md
PR 6235 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6273 docs/dev/debt/libSceAgcDriver.md
PR 6292 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
PR 6297 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6300 docs/dev/debt/libSceAgcDriver.md
PR 6320 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6412 docs/dev/debt/libSceAgcDriver.md
PR 6472 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6481 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6529 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6535 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6539 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
PR 6548 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6563 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6615 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
PR 6727 docs/dev/debt/libSceAgcDriver.md
PR 6783 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6786 docs/dev/debt/libSceAgcDriver.md
PR 6808 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6867 docs/dev/debt/libSceAgcDriver.md
PR 6868 docs/dev/debt/libSceAgcDriver.md
PR 6946 docs/dev/debt/libSceAgcDriver.md
PR 6947 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6972 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 6977 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
docs/dev/debt/libSceAgcDriver.md
PR 7201 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
PR 7250 docs/dev/debt/libSceAgcDriver.md
PR 7332 core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md

@github-actions github-actions Bot added docs agc libSceAgc* labels Oct 18, 2026
@oneandonlydean oneandonlydean self-assigned this Oct 18, 2026
const auto maxPrimitives = outputSize == 2u && !fastLaunch ? std::max(primitives * amplification, maxVertices) : primitives * amplification;
const auto threads = std::max({(groupPrimitives - 1u) * inputStep + inputSize, primitives, maxVertices, maxPrimitives});
result.mesh = ShaderRecompiler::MeshConfiguration{primitive, groupPrimitives, (groupPrimitives - 1u) * inputStep + inputSize, maxVertices, maxPrimitives, ((threads + result.vertexWaveSize - 1u) / result.vertexWaveSize) * result.vertexWaveSize, ((resources >> 19u) & 0xffu) * 128u, 0, esgsItemSize, outputSize};
const auto raster = find(queue.context, 0x205);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking coverage suggestion: this value also feeds the Layer selection in SpirvModuleEmitter.cpp (the emitted mesh primitive selects vertex[provokingVertex]), but the new execution fixture only checks flat and smooth fragment inputs. A focused fixture with distinct guest layer values on the vertices of an emitted primitive could verify that the first/last modes select the intended per-primitive layer in this translation. This would validate the new layer-mapping path; it would not establish the separately documented console-semantic assumption.

@cavazzatommaso

Copy link
Copy Markdown

@thuanquang @MarcZX100 I tested this branch for #7118; here is the result and full runtime log.

Test result for PR #7374 at 8f03282f5eaa50ec1a8f39f9c530961487fe9c49 (TEKKEN DARK RESURRECTION, PPSA31371): the run gets beyond the previous generic generated-primitive refusal, but then aborts at the PR's explicitly retained triangle-strip/fan guard.

The diagnostic source changes were stashed before checkout, git diff --exit-code was empty, and relinker plus libs built successfully in the existing build-main-fixed MinGW build. The newly built runtime libraries were copied into the game directory. The existing converted executable, app0 and shader cache were retained. No global provoking-bit override or validation bypass was applied.

The earlier captured shader 0x14079b100 is prepared at use, followed by further graphics/game activity. Later, the log reports preparation of shader 0x140793500 (stage 7), immediately followed by:

AGC graphics: last provoking vertex is unsupported for triangle strips or fans assembled for a geometry program

Both CMD and PowerShell runs reach this same final refusal and SIGABRT. The screen remains black; the Bandai Namco logo is not visible in these runs. This establishes the next guard encountered, not rendering correctness of the earlier draw. We have not captured the new draw's decoded state, so cannot yet distinguish strip from fan or establish its fragment-input semantics. The test does not validate the later Videodec2 path.

A separate Windows Bad Image dialog (0xc000012f) was observed during the CMD test for /app0/ULUS10139#v1.00/aot/ULUS10139_v1_00_aotv1.prx; both logs nevertheless continue past the AOT loading message to the graphics refusal above. No causal attribution is claimed.

Same environment as #7118: Windows 11 Pro 25H2, Ryzen 7 2700X, RX 7800 XT, AMD Windows driver 32.0.31041.1004, WinLibs GCC 15.2.0 r7, Release.

Full PowerShell runtime log below (the more readable of the two runs). Local installation paths and executable name are redacted; diagnostic addresses and guest virtual paths are retained. Report prepared with AI assistance; test and runtime logs supplied by the reporter.

Full runtime log — PR #7374 test (redacted)
.\game.exe : [time] scheduler tick raised to 0.5 ms (was 0.50 ms, now 0.50 ms, timed waits fine)
In riga:1 car:1
+ .\game.exe > .\test-pr7374-powershell.log 2>&1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: ([time] schedule...med waits fine):String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
[src/HostCpu.cpp:193 operator()] host CPU AMD Ryzen 7 2700X Eight-Core Processor: has SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, LZCNT, BMI1, BMI2, MOVBE, CMPXCHG16B, LAHF/SAHF, AVX, AVX2, FMA, F16C, AES, PCLMULQDQ, RDRAND, RDSEED, ADX, SHA, CLFLUSHOPT, XSAVEOPT, XSAVEC, SSE4A, PREFETCHW, CLZERO, OS AVX state (XCR0); lacks CLWB, RDPID
[memory] configured flexible memory: 0x18000000 bytes (384 MiB)
(HostMem) Mapped 2000.00MB   @ 200000000 -> 27d000000   (DMEM=000000000) [HeapUserMalloc]
Transferring control to ELF entry point

====== PSPHD   ============================================================
  Version      : <undefined>.42
  Emulator Rev : 7a4d451a9a (release/1.10) (2026-02-17 01:15:36)
  Built on     : 2026-02-17 dev/IDE [20260217]
  Built by     : BLUECRAYON/CrayonBot
  Built with   : sdk v 12.0 / clang v 20.1
  Build opts   : Master LTO
  Platform     : PS5
  Package/RO   : No (adhoc)
===========================================================================

          : (cprof001) Begin AppContent and Savedata Init...
PSN Region Code = 'SIEA'
          : (cprof001) Finish AppContent and Savedata Init (0.001 secs)
PSPHD Emulator
[src/Open.cpp:237 sceKernelOpen] path=/app0/conf/PSPHD/defaults.conf flags=0x0 nativeFlags=0x8000 mode=00
config    : [loading] '/app0/conf/PSPHD/defaults.conf'
config    :   --config=none
config    : [loading] Applying first-pass options from default app config:
[src/Open.cpp:237 sceKernelOpen] path=/app0/conf/PSPHD/defaults.conf flags=0x0 nativeFlags=0x8000 mode=00
config    : [loading] '/app0/conf/PSPHD/defaults.conf'
[src/Open.cpp:237 sceKernelOpen] path=/app0/conf/PSPHD/defaults.conf flags=0x0 nativeFlags=0x8000 mode=00
config    : [loading] '/app0/conf/PSPHD/defaults.conf'
config    :   --config=none
config    :   --telemetry-probability=50
config    :   --vms=/temp0/vms (via --[ps5]-vms)
[src/Open.cpp:237 sceKernelOpen] path=/app0/revision.conf flags=0x0 nativeFlags=0x8000 mode=00
config    : [loading] '/app0/revision.conf'
config    :   --git-rev-gamedata=337b6913bd5e781b86633016c8005bc2e3432d38
[src/Open.cpp:237 sceKernelOpen] path=/app0/config-title.txt flags=0x0 nativeFlags=0x8000 mode=00
config    : [loading] '/app0/config-title.txt'
config    :   --through-uv-clamp-enabled=true
config    :   --hack-through-uv-clamp-enabled=true
config    :   --through-uv-clamp-use-zero-edge-alpha=false
config    :   --mem-access-nullptr=RW
config    :   --force-async-reads=true
config    :   --replacement-texture-dir=/xem_skuvault/replacements/texreplace
config    :   --region-dir=SIEA
config    :   --ps4-trophies=1
config    :   --ps5-uds=0
config    :   --globalgamedata-dir=global
[src/Open.cpp:237 sceKernelOpen] path=/app0/SIEA/config-region.txt flags=0x0 nativeFlags=0x8000 mode=00
config    : [loading] '/app0/SIEA/config-region.txt'
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=00000002000f2780 self=0000000000739f50
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=0000000200103180 self=000000000073a060
          : (cprof002) Begin SettingsManager::LoadDefaults...
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=00000002001032c0 self=00000000007398f0
          : [SettingsManager][skipped] loadDefaults: '/app0/imgui_emu_option.json': not present.
          : [SettingsManager][skipped] loadDefaults: '/app0/SIEA/imgui_emu_option.json': not present.
          : (cprof002) Finish SettingsManager::LoadDefaults (0.004 secs)
          : (cprof003) Begin SettingsManager::DoLoad(imgui_emu_option.json)...
[SAVEDATA:native] convert user=268435456 dir=AppSmall -> 0x00000000
./libpsemu/stable/src/sce/SceSaveData.cpp(340): ERROR REPORTED.
(ReportError) sceSaveDataGetEventResult error 809F0008 (SCE_SAVE_DATA_ERROR_NOT_FOUND)
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/localization/en-US.json flags=0x0 nativeFlags=0x8000 mode=00
          : (SaveDataMount) Auto-convert AppSmall took 0.20ms
[SAVEDATA:native] mount3 user=268435456 dir=AppSmall mode=0x1 blocks=49 -> 0x00000000 point=/savedata0 status=0
[src/Open.cpp:237 sceKernelOpen] path=/savedata0/imgui_emu_option.json flags=0x10000 nativeFlags=0x8000 mode=0666
[SAVEDATA:native] umount2 mode=0x10001 point=/savedata0 -> 0x00000000
          : (cprof003) Finish SettingsManager::DoLoad(imgui_emu_option.json) (0.005 secs)
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/localization/en-GB.json flags=0x0 nativeFlags=0x8000 mode=00
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=0000000200105980 self=00000000036e7e70
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/Browse.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/BROWSE_DOWN.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/Browse_UP.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/CloseWindow.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/CloseWindow2.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/OpenWindow.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/OpenWindow2.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/Slider.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/TimelineSlideDown.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/SFX/TimelineSlideUp.ogg flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/PSPHD/attributions/attributions.txt flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/presets flags=0x20000 nativeFlags=0x8000 mode=040555
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/presets/Default.json flags=0x10000 nativeFlags=0x8000 mode=0666
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/presets/Modern.json flags=0x10000 nativeFlags=0x8000 mode=0666
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/presets/RetroClassic.json flags=0x10000 nativeFlags=0x8000 mode=0666
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/presets/RetroModern.json flags=0x10000 nativeFlags=0x8000 mode=0666
          : DevUI Component 'GlyphDebbuger' order was bumped due to existing component(s). requested=0x80000000 
actual=0x80000001
          : DevUI Component 'ProfilingDataPS2' order was bumped due to existing component(s). requested=0x50001000 
actual=0x50001001
          : DevUI Component 'GpuOptionsPS1' order was bumped due to existing component(s). requested=0x60000000 
actual=0x60000001
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=000000020038e5a0 self=00000000036e86f0
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=00000002003915a0 self=00000000036e8c40
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=0000000200390600 self=00000000036e7f80
[src/VulkanDevice.cpp:969 VulkanDevice] VulkanDevice constructor window=000000000aa4fc30
[src/VulkanDevice.cpp:978 VulkanDevice] Vulkan loader loaded library=00007fff7c3a0000
[src/VulkanDevice.cpp:994 VulkanDevice] Presentation window context=0000000006979cd0 extent=1920x1080 extensions=2
[src/VulkanDevice.cpp:1016 VulkanDevice] Vulkan instance created instance=0000000006ba0e80
[src/VulkanDevice.cpp:1021 VulkanDevice] Vulkan surface created surface=00000000069f2450 window=0000000006979cd0
[src/VulkanDevice.cpp:1027 VulkanDevice] Physical device count=1
[src/VulkanDevice.cpp:1060 VulkanDevice] Physical device candidate=0000000006cd0e60 name=AMD  Radeon RX 7800 XT api=0x40415d type=2
[src/VulkanDevice.cpp:1107 VulkanDevice] Physical device selected physical=0000000006cd0e60 queueFamily=0
[src/VulkanDevice.cpp:1120 VulkanDevice] Selected GPU name=AMD  Radeon RX 7800 XT vendor=0x1002 device=0x747e subgroup=64
[src/VulkanDevice.cpp:1122 VulkanDevice] Memory heap 0 size=16112.0 MiB flags=0x3
[src/VulkanDevice.cpp:1122 VulkanDevice] Memory heap 1 size=16338.6 MiB flags=0x0
[src/VulkanDevice.cpp:1122 VulkanDevice] Memory heap 2 size=256.0 MiB flags=0x3
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 0 heap=0 flags=0x1
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 1 heap=1 flags=0x6
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 2 heap=2 flags=0x7
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 3 heap=1 flags=0xe
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 4 heap=0 flags=0xc1
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 5 heap=1 flags=0xc6
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 6 heap=2 flags=0xc7
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 7 heap=1 flags=0xce
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 8 heap=0 flags=0x1
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 9 heap=1 flags=0x6
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 10 heap=2 flags=0x7
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 11 heap=1 flags=0xe
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 12 heap=0 flags=0xc1
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 13 heap=1 flags=0xc6
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 14 heap=2 flags=0xc7
[src/VulkanDevice.cpp:1123 VulkanDevice] Memory type 15 heap=1 flags=0xce
[src/VulkanDevice.cpp:1193 VulkanDevice] Shader clock driver=1 narrowSubgroupClock=1
[src/VulkanDevice.cpp:1528 VulkanDevice] Vulkan features tessellationAvailable=1 mesh=1 depthClip=1 depthRangeUnrestricted=1 pipelineLibrary=1
[src/VulkanDevice.cpp:1782 VulkanDevice] Wave32 programs run on subgroups of 32: compute 1, mesh 1
[src/VulkanDevice.cpp:1900 VulkanDevice] Vulkan device ready device=0000000006d17550 queue=0000000006de1be0 family=0
[write-watch] host imports of write-watched memory keep the write watch: yes (4096 of 4096 scratch pages reported 
written at the import, 0 by its 4-byte settle read, 0 after it, 0 after a full GPU read, 0 after a second, 0 after a 
GPU write, 1 after a CPU store); direct host imports of private memory are settled and stay watched, separate shared 
aliases retain guest write tracking
[pipeline-cache] loaded 244.6 KiB from <GAME_DIR>/shader_cache\vk-pipelines-1002-747e-0080018b-0c8e8bdda0e25d1ebf24733332e294dd.bin
[src/VulkanDevice.cpp:1944 VulkanDevice] Surface capabilities drawable=907x510 min=907x510 max=907x510 minImages=2 maxImages=16 usage=0x9f
[src/VulkanDevice.cpp:1986 VulkanDevice] Swapchain created swapchain=000000005468d0a0 extent=907x510 images=2
[shader-disk-cache] <GAME_DIR>/shader_cache\ff9a221e068613f3 (source version ff9a221e068613f3, format 37)
[pipeline-journal] loaded 8 pipelines and 14 modules (0.5 MiB) from 
<GAME_DIR>/shader_cache\ff9a221e068613f3\pipelines.journal in 1 ms
          : (HostMem) Mapped   64.00MB   @ 27d000000 -> 281000000   (DMEM=07d000000) [DrawEngine Linear Onion]
          : (HostMem) Mapped   32.00MB   @ 281000000 -> 283000000   (DMEM=081000000) [DrawEngine Linear Garlic]
          : (HostMem) Mapped 4096.00MB   @ 283000000 -> 383000000   (DMEM=083000000) [DrawEngine Dynamic Garlic]
[Shaders/ShaderRegistry.cpp:791 operator()] Shader 0x140796500 could not be prepared at registration (its program 
address is not in the shader registers); preparing it when it is used
[Shaders/ShaderRegistry.cpp:791 operator()] Shader 0x14079e500 could not be prepared at registration (its program 
address is not in the shader registers); preparing it when it is used
[Shaders/ShaderRegistry.cpp:791 operator()] Shader 0x14079ef00 could not be prepared at registration (its program 
address is not in the shader registers); preparing it when it is used
          : (HostMem) Mapped   24.00MB   @ 383000000 -> 384800000   (DMEM=183000000) [DrawEngine Frame Onion 0]
          : (HostMem) Mapped   16.00MB   @ 384800000 -> 385800000   (DMEM=184800000) [DrawEngine Frame Garlic 0]
          : (HostMem) Mapped   24.00MB   @ 385800000 -> 387000000   (DMEM=185800000) [DrawEngine Frame Onion 1]
          : (HostMem) Mapped   16.00MB   @ 387000000 -> 388000000   (DMEM=187000000) [DrawEngine Frame Garlic 1]
          : (HostMem) Mapped   24.00MB   @ 388000000 -> 389800000   (DMEM=188000000) [DrawEngine Frame Onion 2]
          : (HostMem) Mapped   16.00MB   @ 389800000 -> 38a800000   (DMEM=189800000) [DrawEngine Frame Garlic 2]
          : Perm Onion   size=64.00MB free=16.00MB
          : Perm Garlic  size=32.00MB free=32.00MB
          : Dyn  Garlic  size=4096.00MB free=3984.00MB contig=3984.00MB
(PSP)  Package: disabling --texsave, --texmissingsave, --dumpvideos, --dumpaudio
(AppThrottleController)  unThrottleRequest reason Bios, request ThrottleOn
(AppThrottleController)  unThrottleRequest reason User, request ThrottleOn
FMEM Available = 382960 KiB
          : (vmem) mapping 00000080_00000000 -> 00000080_00004000 to filepos 18a800000
          : (vmem) mapping 00000080_00010000 -> 00000080_00014000 to filepos 18a804000
          : (vmem) mapping 00000080_40010000 -> 00000080_40014000 to filepos 18a804000
          : (vmem) mapping 00000080_04000000 -> 00000080_04200000 to filepos 18a808000
          : (vmem) mapping 00000080_04200000 -> 00000080_04400000 to filepos 18a808000
          : (vmem) mapping 00000080_04400000 -> 00000080_04600000 to filepos 18a808000
          : (vmem) mapping 00000080_04600000 -> 00000080_04800000 to filepos 18a808000
          : (vmem) mapping 00000080_44000000 -> 00000080_44200000 to filepos 18a808000
          : (vmem) mapping 00000080_44200000 -> 00000080_44400000 to filepos 18a808000
          : (vmem) mapping 00000080_44400000 -> 00000080_44600000 to filepos 18a808000
          : (vmem) mapping 00000080_44600000 -> 00000080_44800000 to filepos 18a808000
          : (vmem) mapping 00000080_08000000 -> 00000080_0c000000 to filepos 18aa08000
          : (vmem) mapping 00000080_48000000 -> 00000080_4c000000 to filepos 18aa08000
          : (vmem) mapping 00000080_88000000 -> 00000080_8c000000 to filepos 18aa08000
FMEM Available = 382960 KiB
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/msdf/msdf-metrics.txt flags=0x0 nativeFlags=0x8000 mode=00
initFont() ret 00000000
[src/Open.cpp:409 sceFontOpenFontSet] fontSetType=0x1808B4D4 file=(none)
sceFontOpenFontSet() : ERROR 80460036
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/msdf/array.png flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/assets/common/forbidden.png flags=0x0 nativeFlags=0x8000 mode=00
[SAVEDATA:native] dirNameSearch user=268435456 pattern=PSPHDSNAP hit=0 set=0 -> 0x00000000
          : (cprof004) Begin UI::LoadSettingsSources()...
          : (cprof005) Begin SettingsManager::WaitForAsyncLoad()...
          : (cprof005) Finish SettingsManager::WaitForAsyncLoad() (0.000 secs)
          : (cprof006) Begin SettingsManager::WaitForAsyncLoad()...
          : (cprof006) Finish SettingsManager::WaitForAsyncLoad() (0.000 secs)
          : (cprof004) Finish UI::LoadSettingsSources() (0.001 secs)
(LuaScript)  [not found] Application Boot Script: /app0/app_boot.lua
(LuaScript)  [found] Application Boot Script: /app0/SIEA/app_boot.lua
[src/Open.cpp:237 sceKernelOpen] path=/app0/SIEA/app_boot.lua flags=0x0 nativeFlags=0x8000 mode=00
(LuaPrint) Loading SIEA/app_boot.lua
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/disc-selection.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/disc-selection/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/disc-selection.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/disc-selection/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=./disc-selection.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=./disc-selection/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/lua_include/disc-selection.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/lua_include/disc-selection.lua flags=0x0 nativeFlags=0x8000 mode=00
(LuaPrint) Loading disc-selection.lua from global scripts
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/sce-locale.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/sce-locale/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/sce-locale.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/sce-locale/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=./sce-locale.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=./sce-locale/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/lua_include/sce-locale.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/lua_include/sce-locale.lua flags=0x0 nativeFlags=0x8000 mode=00
(LuaPrint) Loading sce-locale.lua from global scripts
(LuaPrint) [BOOT] App Host Langauge =	en
(LuaPrint) [BOOT] App Host Locale =	en-US
(LuaPrint) Found locale table entry	en
(LuaPrint) [BOOT] Reboot title id = 	
(PSP)  Inferred --image from --active-sku: /app0/ULUS10139#v1.00/ULUS10139#v1.00.IMG
(PSP)  Disc image: /app0/ULUS10139#v1.00/ULUS10139#v1.00.IMG
[src/Open.cpp:237 sceKernelOpen] path=/app0/ULUS10139#v1.00/ULUS10139#v1.00.IMG flags=0x0 nativeFlags=0x8000 mode=00
(ISO9660)  Location of root directory extent: 22.
(ISO9660)  Length of root directory extent: 2048.
[src/Open.cpp:237 sceKernelOpen] path=/app0/ULUS10139#v1.00/ULUS10139#v1.00.IMG flags=0x10000 nativeFlags=0x8000 mode=0666
(ParamsSFO)  Loaded PARAMS.SFO
(ParamsSFO)  Key: BOOTABLE - Type: Number - Value: 00000001
(ParamsSFO)  Key: CATEGORY - Type: String - Value: UG
(ParamsSFO)  Key: DISC_ID - Type: String - Value: ULUS10139
(ParamsSFO)  Key: DISC_NUMBER - Type: Number - Value: 00000001
(ParamsSFO)  Key: DISC_TOTAL - Type: Number - Value: 00000001
(ParamsSFO)  Key: DISC_VERSION - Type: String - Value: 1.00
(ParamsSFO)  Key: PARENTAL_LEVEL - Type: Number - Value: 00000005
(ParamsSFO)  Key: PSP_SYSTEM_VER - Type: String - Value: 2.60
(ParamsSFO)  Key: REGION - Type: Number - Value: 00008000
(ParamsSFO)  Key: TITLE - Type: String - Value: TEKKEN DARK RESURRECTION
(PSP)  ao0 is not mounted, not found: /app0/SIEA/addon
          : (AppHost) UDS initialization failed or is disabled. Trophies will not be supported.
(PSP)  Master application volume level to 100%
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=0000000200011540 self=000000007e56f7a0
(ModuleManager)  Push back Module 10, IoFileMgrForUser
(ModuleManager)  Push back Module 11, IoFileMgrForKernel
(ModuleManager)  Push back Module 12, LoadExecForUser
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=0000000205338180 self=000000007e56f9c0
(ModuleManager)  Push back Module 13, ModuleMgrForUser
(ModuleManager)  Push back Module 14, StdioForUser
(ModuleManager)  Push back Module 15, SysMemUserForUser
(ModuleManager)  Push back Module 16, ThreadManForUser
(ModuleManager)  Push back Module 17, ThreadManForKernel
(ModuleManager)  Push back Module 18, sceDisplay
(ModuleManager)  Push back Module 19, sceGe_user
(ModuleManager)  Push back Module 1a, sceNet
(ModuleManager)  Push back Module 1b, sceNetInet
(ModuleManager)  Push back Module 1c, sceNetResolver
(ModuleManager)  Push back Module 1d, sceNetAdhoc
(ModuleManager)  Push back Module 1e, sceNetAdhocMatching
(ModuleManager)  Push back Module 1f, sceNetAdhocctl
(ModuleManager)  Push back Module 20, sceNetApctl
(ModuleManager)  Push back Module 21, sceHttp
(ModuleManager)  Push back Module 22, UtilsForKernel
(ModuleManager)  Push back Module 23, UtilsForUser
(ModuleManager)  Push back Module 24, sceCtrl
(ModuleManager)  Push back Module 25, sceRtc
(ModuleManager)  Push back Module 26, InterruptManager
(ModuleManager)  Push back Module 27, Kernel_Library
(ModuleManager)  Push back Module 28, sceSasCore
(ModuleManager)  Push back Module 29, scePower
(ModuleManager)  Push back Module 2a, sceWlanDrv
(ModuleManager)  Push back Module 2b, scePsmf
(ModuleManager)  Push back Module 2c, scePsmfPlayer
(ModuleManager)  Push back Module 2d, sceUtility
(ModuleManager)  Push back Module 2e, sceUmdUser
(ModuleManager)  Push back Module 2f, sceSuspendForUser
(ModuleManager)  Push back Module 30, sceSsl
(ModuleManager)  Push back Module 31, sceAudio
(ModuleManager)  Push back Module 32, sceAtrac3plus
(ModuleManager)  Push back Module 33, sceMpeg
(ModuleManager)  Push back Module 34, sceImpose
(ModuleManager)  Push back Module 35, sceJpeg
(ModuleManager)  Push back Module 36, sceDmac
(ModuleManager)  Push back Module 37, sceOpenPSID
(ModuleManager)  Push back Module 38, sceUsb
(ModuleManager)  Push back Module 39, scePspNpDrm_user
(ModuleManager)  Push back Module 3a, sceHprm
(ModuleManager)  Push back Module 3b, sceCcc
(ModuleManager)  Push back Module 3c, sceDeflt
(ModuleManager)  Push back Module 3d, sceMd5
          : (HostMem) Mapped  900.00MB   @ 38ec00000 -> 3c7000000   (DMEM=193000000) [SnapshotTimeline Dynamic]
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=00000002053ab180 self=000000007e56f360
(AOT)  Loading library: /app0/ULUS10139#v1.00/aot/ULUS10139_v1_00_aotv1.prx
(AOT)  AOT library file not found!
(AOT)  No valid AoT libraries found.
(Lua)  Loading script scripts/ULUS10139_patches.lua
[src/Open.cpp:237 sceKernelOpen] path=/app0/SIEA/scripts/ULUS10139_patches.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/ax-gpr-alias/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/ax-gpr-alias/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=./ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=./ax-gpr-alias/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/SIEA/scripts/lua_include/ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/scripts/SIEA/lua_include/ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/scripts/lua_include/ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/SIEA/lua_include/ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/lua_include/ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/lua_include/ax-gpr-alias.lua flags=0x0 nativeFlags=0x8000 mode=00
(LuaPrint) _NOTE: OPENING global ax-gpr-alias.lua
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/pad.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/pad/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/pad.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/lua_include/pad/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=./pad.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=./pad/init.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/SIEA/scripts/lua_include/pad.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/scripts/SIEA/lua_include/pad.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/scripts/lua_include/pad.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/SIEA/lua_include/pad.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/lua_include/pad.lua flags=0x0 nativeFlags=0x8000 mode=00
[src/Open.cpp:237 sceKernelOpen] path=/app0/global/scripts/lua_include/pad.lua flags=0x0 nativeFlags=0x8000 mode=00
(LuaPrint) _NOTE: OPENING global pad.lua
(Lua)  Script scripts/ULUS10139_features.lua not found
(Lua)  Script tooling/ULUS10139_tooling.lua not found
(Lua)  Script scripts/ULUS10139_trophies.lua not found
[src/Open.cpp:237 sceKernelOpen] path=/app0/ULUS10139#v1.00/replacements/texreplace flags=0x20000 nativeFlags=0x8000 mode=040555
(TextureCache)  Looking at 1 files found in '/app0/ULUS10139#v1.00/replacements/texreplace'...
(TextureCache)  1 textures to load. Starting jobs on 3 threads.
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=00000002053c6980 self=000000007e56fcf0
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=00000002053c69c0 self=000000007e56fad0
[src/Thread.cpp:549 RunThread] RunThread entry=0x1400af8a0 arg=00000002053c6980 self=000000007e56f470
[src/Open.cpp:237 sceKernelOpen] path=/app0/ULUS10139#v1.00/replacements/texreplace/1ed6004d_5a2c50ce_32_64_0.png flags=0x0 nativeFlags=0x8000 mode=0666
(TextureCache)  Looked at 1 files, kept 0, reloaded 1 textures
(TextureCache)  Total time loading textures: 0.01s
(ModuleManager)  Could not find matching module name for tkpsp
(ModuleManager) WARN :  Missing NID: 0282A3BD at pc 08a72f2c
(ModuleManager) WARN :  Missing NID: 03D9526F at pc 08a72f34
(ModuleManager) WARN :  Missing NID: 1F0FC3E3 at pc 08a72f3c
(ModuleManager) WARN :  Missing NID: 47940436 at pc 08a72f44
(ModuleManager) WARN :  Missing NID: 4CC7D78F at pc 08a72f4c
(ModuleManager) WARN :  Missing NID: 5152773B at pc 08a72f54
(ModuleManager) WARN :  Missing NID: 8ACD1F73 at pc 08a72f5c
(ModuleManager) WARN :  Missing NID: 9988172D at pc 08a72f64
(ModuleManager) WARN :  Missing NID: 9B1F1F36 at pc 08a72f6c
(ModuleManager) WARN :  Missing NID: A5512E01 at pc 08a72f74
(ModuleManager) WARN :  Missing NID: AB1540D5 at pc 08a72f7c
(ModuleManager) WARN :  Missing NID: AB1ABE07 at pc 08a72f84
(ModuleManager) WARN :  Missing NID: B3FAF831 at pc 08a72f8c
(ModuleManager) WARN :  Missing NID: B509B09E at pc 08a72f94
(ModuleManager) WARN :  Missing NID: BB70706F at pc 08a72f9c
(ModuleManager) WARN :  Missing NID: C10B6BD9 at pc 08a72fa4
(ModuleManager) WARN :  Missing NID: CDF8ECB9 at pc 08a72fac
(ModuleManager) WARN :  Missing NID: D081EC8F at pc 08a72fb4
(ModuleManager) WARN :  Missing NID: D1C8945E at pc 08a72fbc
(ModuleManager) WARN :  Missing NID: E4D21302 at pc 08a72fc4
(ModuleManager) WARN :  Missing NID: EDEEB999 at pc 08a72fcc
(ModuleManager) WARN :  Missing NID: F9D8EB63 at pc 08a72fd4
(ModuleManager) WARN :  Missing NID: FCF8C055 at pc 08a72fdc
(ModuleManager) WARN :  Could not find implementation of 23 NIDs in sceHttp requested by module tkpsp
(ModuleManager) WARN :  Missing NID: 0BF0A3AE at pc 08a730ac
(ModuleManager) WARN :  Could not find implementation of 1 NIDs in sceNet requested by module tkpsp
(ModuleManager) WARN :  Missing NID: 6F92741B at pc 08a730dc
(ModuleManager) WARN :  Missing NID: 877F6D66 at pc 08a730ec
(ModuleManager) WARN :  Missing NID: ABED3790 at pc 08a73114
(ModuleManager) WARN :  Missing NID: DFE53E03 at pc 08a7311c
(ModuleManager) WARN :  Missing NID: FC6FC07B at pc 08a73134
(ModuleManager) WARN :  Could not find implementation of 5 NIDs in sceNetAdhoc requested by module tkpsp
(ModuleManager) WARN :  Missing NID: EA3C6108 at pc 08a73174
(ModuleManager) WARN :  Could not find implementation of 1 NIDs in sceNetAdhocMatching requested by module tkpsp
(ModuleManager) WARN :  Missing NID: 24FE91A1 at pc 08a731c4
(ModuleManager) WARN :  Missing NID: 5963991B at pc 08a731cc
(ModuleManager) WARN :  Missing NID: 8ABADD51 at pc 08a731d4
(ModuleManager) WARN :  Missing NID: B3EDD0EC at pc 08a731dc
(ModuleManager) WARN :  Missing NID: E2F91F9B at pc 08a731e4
(ModuleManager) WARN :  Could not find implementation of 5 NIDs in sceNetApctl requested by module tkpsp
(ModuleManager) WARN :  Missing NID: 17943399 at pc 08a731ec
(ModuleManager) WARN :  Missing NID: A9ED66B9 at pc 08a731f4
(ModuleManager) WARN :  Could not find implementation of 2 NIDs in sceNetInet requested by module tkpsp
(ModuleManager) WARN :  Missing NID: 3A807CC8 at pc 08a7321c
(ModuleManager) WARN :  Could not find implementation of 1 NIDs in sceRtc requested by module tkpsp
(ModuleManager) WARN :  Missing NID: 191CDEFF at pc 08a732f4
(ModuleManager) WARN :  Missing NID: 957ECBE2 at pc 08a732fc
(ModuleManager) WARN :  Could not find implementation of 2 NIDs in sceSsl requested by module tkpsp
(ModuleManager) WARN :  Missing NID: 4FED24D8 at pc 08a73374
(ModuleManager) WARN :  Could not find implementation of 1 NIDs in sceUtility requested by module tkpsp
(ModuleManager)  Inserting Module 3e, tkpsp,  addr: 8800000   size: 13ac75c
(AOTProfiler)  PERF: OnModuleLoad disc0:/PSP_GAME/SYSDIR/EBOOT.BIN, tkpsp, 8800000, 20629340

(ModuleManager)  Loaded module: disc0:/PSP_GAME/SYSDIR/EBOOT.BIN [0x08800000]
(AppThrottleController)  unThrottleRequest reason Bios, request ThrottleOn
(AppThrottleController)  unThrottleRequest reason User, request ThrottleOn
(HLESysMemUserForUser)  sceKernelSetCompiledSdkVersion(02060010)
(HLESysMemUserForUser)  sceKernelSetCompilerVersion(00030306)
(HLEsceUmdUser)  sceUmdActivate(1, disc0:)
(umd)  sceUmdWaitDriveStatCB(00000020)
(ModuleManager)  Module sceSAScore is already HLE
(module)  Unimplemented HLE sceKernelStartModule(00000028, ...)
(ModuleManager)  Module sceAudiocodec_Driver is already HLE
(module)  Unimplemented HLE sceKernelStartModule(00000033, ...)
(ModuleManager)  Module sceATRAC3plus_Library is already HLE
(module)  Unimplemented HLE sceKernelStartModule(00000032, ...)
(ModuleManager)  Module sceVideocodec_Driver is already HLE
(module)  Unimplemented HLE sceKernelStartModule(00000033, ...)
(ModuleManager)  Module sceMpegbase_Driver is already HLE
(module)  Unimplemented HLE sceKernelStartModule(00000033, ...)
(ModuleManager)  Module sceMpeg_library is already HLE
(module)  Unimplemented HLE sceKernelStartModule(00000033, ...)
(HLEsceDisplay)  sceDisplaySetMode - mode: 0, width = 480, height = 272
(HLEsceDisplay)  sceDisplaySetMode called from PC: 08a21318
(SceUserService)  User 0x10000000 has logged in (bound to Player 0)
(ScePad) ERROR:  scePadOpen(player=0, user=0x10000000, SCE_PAD_PORT_TYPE_SPECIAL) failed, code 0x80920007
(ScePad) ERROR:  scePadSetTiltCorrectionState(player=0, user=0x10000000) failed, code 0x80920003
(Controller)  Added SCE Controller as Player 0: DS4stat: 1
[ime] GetStatus #0 -> 0
[src/Open.cpp:237 sceKernelOpen] path=imgui.ini flags=0x0 nativeFlags=0x8000 mode=00
[ime] GetStatus #1 -> 0
          : (AppEmu) STOPPED   reason=0010
          : (AppEmu) RUNNING
(HLESysMemUserForUser)  sceKernelAllocPartitionMemory - partition: 2, name: UserSbrk - type: 3 - size: 1703936
(HLESysMemUserForUser)  sceKernelAllocPartitionMemory called from PC: 08a63860
(HLEscePower)  scePowerRegisterCallback - ignoring
(GPU) WARN :  GPU::CrtcScanout: Could not find anything to display from address 04000000
[mouse] video driver windows: guest 1920x1080 presented at 907x510, delta scale 2.1169 x 2.1176
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x284360000 960x540 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x2845e0000 1920x1080 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x2845e0000 1920x1080 mips=1 viewed from storage image (vk=37)
[gpu] sampled texture cache budget 9193 MiB: device-local heap 0 has a VK_EXT_memory_budget budget of 15165 MiB and 
uses 59 MiB, 0 MiB of it sampled textures (0 MiB in the cache) and 11 MiB cached storage images; storage image cache 
budget 3791 MiB
[Shaders/ShaderRegistry.cpp:486 ReportPreparedAtUse] Shader 0x14079b100 stage 7 has no artifact prepared at 
registration for the state of this draw or dispatch; preparing it at use
[gpu] layer/viewport index vertex exports are ignored (PA_CL_VS_OUT_CNTL=0x01240000)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x290ec0000 1920x1088 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[Shaders/ShaderRegistry.cpp:533 DrawRectangle] Rect-list draw of shader 0x1407a8000 has no rectangle for fragment 
shader 0x7fff73117700; preparing it at draw
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x287540000 4x4 mips=1 mip=0 layers=0 base=0 dim=1 tile=3 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x287540000 4x4 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x291730000 1920x1088 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x290ec0000 1920x1088 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x293ba0000 1920x1080 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x291730000 1920x1088 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x294410000 1920x1080 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x293ba0000 1920x1080 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x285940000 1920x1080 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x294410000 1920x1080 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x2861b0000 1920x1080 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x2856c0000 960x540 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x285940000 1920x1080 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x295d60000 1920x1088 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x2965d0000 1920x1088 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x295d60000 1920x1088 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:752 Texture] Texture address=0x2965d0000 1920x1088 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x283280000 1920x1080 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x283af0000 1920x1080 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x283000000 960x540 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
[src/Texture.cpp:752 Texture] Texture address=0x283280000 1920x1080 mips=1 viewed from storage image (vk=37)
[src/Texture.cpp:1102 StorageTexture] StorageTexture address=0x284e50000 1920x1080 mips=1 mip=0 layers=0 base=0 dim=1 tile=7 format=56 vk=37
          : (SasCore) Reverb Effect Type = 4
          : (SasCore) Reverb Effect Switches dry=1 wet=1
          : (null) has invalid argument, result code is SCE_SAS_ERROR_FX_VOLUME_VAL
          : (SasCore) Reverb Effect Type = 3
(HLEIoFileMgrForUser)  Registered MS insert/eject callback: trigger at next schedule
(HLEIoFileMgrForUser)  Unregister MS insert/eject callback: ignoring
(SaveDataMulti)  SavedataInitStart: Type = 0, pc = 0884a3b0
[src/Thread.cpp:549 RunThread] RunThread entry=0x7fff88428440 arg=00000000087df940 self=00000000ab4c1a50
[Shaders/ShaderRegistry.cpp:486 ReportPreparedAtUse] Shader 0x140793500 stage 7 has no artifact prepared at 
registration for the state of this draw or dispatch; preparing it at use
[gpu] driver failure: AGC graphics: last provoking vertex is unsupported for triangle strips or fans assembled for a 
geometry program
[videoout] presentation failed: AGC graphics: last provoking vertex is unsupported for triangle strips or fans 
assembled for a geometry program
terminate called after throwing an instance of 'std::runtime_error'
  what():  AGC graphics: last provoking vertex is unsupported for triangle strips or fans assembled for a geometry 
program
terminate called after throwing an instance of 'std::runtime_error'
  what():  AGC graphics: last provoking vertex is unsupported for triangle strips or fans assembled for a geometry 
program
FATAL: abort() (SIGABRT) on thread 4240
    #0 0x00007fff87e01b18 libc.prx+0x11b18
    #1 0x00007fff87edab31 libc.prx+0xeab31
    #2 0x000000000aa4f910
  stack return address candidates:

@oneandonlydean
oneandonlydean merged commit 3e3e8b9 into boykopovar:main Oct 18, 2026
11 checks passed
@oneandonlydean

Copy link
Copy Markdown
Collaborator

Thanks, this is merged. One follow-up, not blocking, and a separate small PR is fine: under last-provoking-vertex mode the per-primitive Layer is still untested. Could you add a fixture where each vertex of a primitive writes a distinct layer, render to a 2-layer target, and check that last mode lands on the last vertex's layer? It's reachable only by mesh programs that write different layers per vertex of one primitive, but that is exactly the case the provoking-vertex selection decides.

thuanquang added a commit to thuanquang/AnyPS5 that referenced this pull request Oct 19, 2026
…st provoking vertex

An RX 6700 XT hands a geometry shader odd strip triangle i as
(i+1, i, i+2) with the last provoking vertex, which is the order the
translator already uses, and since boykopovar#7374 last mode takes the flat
outputs of the program's primitives from their last index. Keep the
last-mode refusal for fans only, which reach the program as
(i+1, i+2, 0) while the hardware gives (0, i+1, i+2). TEKKEN DARK
RESURRECTION (PPSA31371) stops on such a strip draw.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
thuanquang added a commit to thuanquang/AnyPS5 that referenced this pull request Oct 20, 2026
…st provoking vertex

An RX 6700 XT hands a geometry shader odd strip triangle i as
(i+1, i, i+2) with the last provoking vertex, which is the order the
translator already uses, and since boykopovar#7374 last mode takes the flat
outputs of the program's primitives from their last index. Keep the
last-mode refusal for fans only, which reach the program as
(i+1, i+2, 0) while the hardware gives (0, i+1, i+2). TEKKEN DARK
RESURRECTION (PPSA31371) stops on such a strip draw.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
thuanquang added a commit to thuanquang/AnyPS5 that referenced this pull request Oct 21, 2026
…st provoking vertex

An RX 6700 XT hands a geometry shader odd strip triangle i as
(i+1, i, i+2) with the last provoking vertex, which is the order the
translator already uses, and since boykopovar#7374 last mode takes the flat
outputs of the program's primitives from their last index. Keep the
last-mode refusal for fans only, which reach the program as
(i+1, i+2, 0) while the hardware gives (0, i+1, i+2). TEKKEN DARK
RESURRECTION (PPSA31371) stops on such a strip draw.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants