Repository navigation
Simplify AGC driver plumbing and remove legacy JPEG/turbo integration - #2001
Closed
Praetorian0420 wants to merge 6 commits into
Closed
Praetorian0420 wants to merge 6 commits into
Praetorian0420 wants to merge 6 commits into
Conversation
Progress report (f145139 → f0b450e)📉 System libraries: 79.54% (-5.22%, +377 implemented, +248 declared, -142 reverted, -396 removed functions) ✅ 377 implemented
🆕 248 declared as stubs
|
| Library | Name |
|---|---|
| libSceAgc | sceAgcAsyncCondExecPatchSetCommandAddress |
| libSceAgc | sceAgcAsyncCondExecPatchSetEnd |
| libSceAgc | sceAgcAsyncWriteDataPatchSetAddressOrOffset |
| libSceAgc | sceAgcAsyncWriteDataPatchSetCachePolicy |
| libSceAgc | sceAgcAsyncWriteDataPatchSetDst |
| libSceAgc | sceAgcCbCondWrite |
| libSceAgc | sceAgcCbCondWriteGetSize |
| libSceAgc | sceAgcCondExecPatchSetCommandAddress |
| libSceAgc | sceAgcCondExecPatchSetEnd |
| libSceAgc | sceAgcDcbContextStateOpGetSize |
| libSceAgc | sceAgcDcbQueueEndOfShaderActionGetSize |
| libSceAgc | sceAgcDcbSetBoolPredicationEnableGetSize |
| libSceAgc | sceAgcDcbSetPredicationDisableGetSize |
| libSceAgc | sceAgcDcbSetZPassPredicationEnableGetSize |
| libSceAgc | sceAgcGetDataPacketPayloadRange |
| libSceAgc | sceAgcGetGsOversubscription |
| libSceAgc | sceAgcGetPacketSize |
| libSceAgc | sceAgcSetPacketPredication |
| libSceAgc | sceAgcSetRangePredication |
| libSceAgc | sceAgcWriteDataPatchSetCachePolicy |
| libSceAgc | sceAgcWriteDataPatchSetDst |
| libSceAgcDriver | sceAgcDriverAgrSubmitMultiDcbs |
| libSceAgcDriver | sceAgcDriverFindResourcesPublic |
| libSceAgcDriver | sceAgcDriverGetDefaultOwner |
| libSceAgcDriver | sceAgcDriverGetEqContextId |
| libSceAgcDriver | sceAgcDriverGetOwnerName |
| libSceAgcDriver | sceAgcDriverGetResourceBaseAddressAndSizeInBytes |
| libSceAgcDriver | sceAgcDriverGetResourceName |
| libSceAgcDriver | sceAgcDriverGetResourceRegistrationMaxNameLength |
| libSceAgcDriver | sceAgcDriverGetResourceShaderGuid |
| libSceAgcDriver | sceAgcDriverGetResourceType |
| libSceAgcDriver | sceAgcDriverGetResourceUserData |
| libSceAgcDriver | sceAgcDriverIsCaptureInProgress |
| libSceAgcDriver | sceAgcDriverIsSubmitValidationEnabled |
| libSceAgcDriver | sceAgcDriverIsTraceInProgress |
| libSceAgcDriver | sceAgcDriverRegisterGdsResource |
| libSceAgcDriver | sceAgcDriverSetResourceUserData |
| libSceAgcDriver | sceAgcDriverSubmitMultiAcbs |
| libSceAgcDriver | sceAgcDriverSubmitMultiDcbs |
| libSceAgcDriver | sceAgcDriverUnregisterAllResourcesForOwner |
| libSceAgcDriver | sceAgcDriverUnregisterWorkloadStream |
| libSceAjm.native | sceAjmBatchCancel |
| libSceAjm.native | sceAjmBatchJobGetInfo |
| libSceAjm.native | sceAjmBatchJobGetResampleInfo |
| libSceAjm.native | sceAjmBatchJobSetResampleParameters |
| libSceAjm.native | sceAjmDecMp3ParseFrame |
| libSceAmpr | sceAmprAprCommandBufferMapBegin |
| libSceAmpr | sceAmprAprCommandBufferMapDirectBegin |
| libSceAmpr | sceAmprAprCommandBufferMapEnd |
| libSceAmpr | sceAmprAprCommandBufferReadFileGather |
| libSceAmpr | sceAmprAprCommandBufferReadFileGatherScatter |
| libSceAmpr | sceAmprAprCommandBufferReadFileScatter |
| libSceAmpr | sceAmprAprCommandBufferResetGatherScatterState |
| libSceAmpr | sceAmprCommandBufferConstructMarker |
| libSceAmpr | sceAmprCommandBufferConstructNop |
| libSceAmpr | sceAmprCommandBufferNop |
| libSceAmpr | sceAmprCommandBufferNopWithData |
| libSceAmpr | sceAmprCommandBufferWaitOnAddress_04_00 |
| libSceAmpr | sceAmprCommandBufferWaitOnCounter_04_00 |
| libSceAmpr | sceAmprCommandBufferWriteAddressFromCounterPair_04_00 |
| libSceAmpr | sceAmprCommandBufferWriteAddressFromCounter_04_00 |
| libSceAmpr | sceAmprCommandBufferWriteAddressFromTimeCounter_04_00 |
| libSceAmpr | sceAmprCommandBufferWriteCounter_04_00 |
| libSceAmpr | sceAmprCommandBufferWriteKernelEventQueue_04_00 |
| libSceAmpr | sceAmprMeasureCommandSizeMapBegin |
| libSceAmpr | sceAmprMeasureCommandSizeMapDirectBegin |
| libSceAmpr | sceAmprMeasureCommandSizeMapEnd |
| libSceAmpr | sceAmprMeasureCommandSizeNop |
| libSceAmpr | sceAmprMeasureCommandSizeNopWithData |
| libSceAmpr | sceAmprMeasureCommandSizeReadFileGather |
| libSceAmpr | sceAmprMeasureCommandSizeReadFileGatherScatter |
| libSceAmpr | sceAmprMeasureCommandSizeReadFileScatter |
| libSceAmpr | sceAmprMeasureCommandSizeResetGatherScatterState |
| libSceAmpr | sceAmprMeasureCommandSizeWaitOnAddress_04_00 |
| libSceAmpr | sceAmprMeasureCommandSizeWaitOnCounter_04_00 |
| libSceAmpr | sceAmprMeasureCommandSizeWriteAddressFromCounterPair_04_00 |
| libSceAmpr | sceAmprMeasureCommandSizeWriteAddressFromCounter_04_00 |
| libSceAmpr | sceAmprMeasureCommandSizeWriteAddressFromTimeCounter_04_00 |
| libSceAmpr | sceAmprMeasureCommandSizeWriteCounter_04_00 |
| libSceAmpr | sceAmprMeasureCommandSizeWriteKernelEventQueue_04_00 |
| libSceAppContent | sceAppContentAddcontMount |
| libSceAppContent | sceAppContentAddcontUnmount |
| libSceAudio3d | sceAudio3dInitialize |
| libSceAudio3d | sceAudio3dPortAdvance |
| libSceAudio3d | sceAudio3dPortClose |
| libSceAudio3d | sceAudio3dPortGetQueueLevel |
| libSceAudio3d | sceAudio3dPortOpen |
| libSceAudio3d | sceAudio3dPortPush |
| libSceAudio3d | sceAudio3dPortSetAttribute |
| libSceFont | sceFontCreateWritingLine |
| libSceFont | sceFontDestroyWritingLine |
| libSceFont | sceFontDettachDeviceCacheBuffer |
| libSceFont | sceFontGetCharGlyphCode |
| libSceFont | sceFontGetFontGlyphsCount |
| libSceFont | sceFontGetFontResolution |
| libSceFont | sceFontGlyphDefineAttribute |
| libSceFont | sceFontWritingLineClear |
| libSceFont | sceFontWritingLineGetOrderingSpace |
| libSceFont | sceFontWritingLineGetRenderMetrics |
| libSceFont | sceFontWritingLineRefersRenderStep |
| ... | 42 more |
🗑️ 396 removed
| Library | Name |
|---|---|
| libSceAcm | sceAcm_FFT |
| libSceAcm | sceAcm_Panner |
| libSceAgc | sceAgcAcbAtomicGds_0900 |
| libSceAgc | sceAgcBranchPatchSetElseTarget_0300 |
| libSceAgc | sceAgcBranchPatchSetThenTarget_0300 |
| libSceAgc | sceAgcDcbClearState |
| libSceAgc | sceAgcDcbContextStateOp_0100 |
| libSceAgc | sceAgcDcbSetCfRegisterDirect |
| libSceAgc | sceAgcDcbSetCfRegisterRangeDirect |
| libSceAgc | sceAgcDcbSetIndexSize_0600 |
| libSceAgc | sceAgcFuseShaderHalves_0200 |
| libSceAgc | sceAgcGetDataPacketPayloadAddress_0090 |
| libSceAgc | sceAgcGetFusedShaderSize_0080 |
| libSceAgc | sceAgcGetRegisterDefaultsInternal |
| libSceAgc | sceAgcInit_0090 |
| libSceAgc | sceAgcJumpPatchSetTarget_0300 |
| libSceAgc | sceAgcSetSemaphoreMemory |
| libSceAgc | sceAgcUnknown_vieBRwlh1Lw |
| libSceAgc | sceAgcUpdateInterpolantMapping_0100 |
| libSceAgc | sceAgcWaitRegMemPatchMask |
| libSceAgcDriver | sceAgcDriverRegisterMultipleResources |
| libSceAjm.native | sceAjmDecWVorbisCreateHeaderPacket |
| libSceAjm.native | sceAjmDecWVorbisCreateSetupPacket |
| libSceAmpr | sceAmprAmmCommandBufferAllocatePaForPrt |
| libSceAmpr | sceAmprAmmCommandBufferConstructor |
| libSceAmpr | sceAmprAmmCommandBufferDestructor |
| libSceAmpr | sceAmprAmmCommandBufferMap |
| libSceAmpr | sceAmprAmmCommandBufferMapAsPrt |
| libSceAmpr | sceAmprAmmCommandBufferMapDirect |
| libSceAmpr | sceAmprAmmCommandBufferMapDirectWithGpuMaskId |
| libSceAmpr | sceAmprAmmCommandBufferMapWithGpuMaskId |
| libSceAmpr | sceAmprAmmCommandBufferModifyMtypeProtect |
| libSceAmpr | sceAmprAmmCommandBufferModifyMtypeProtectWithGpuMaskId |
| libSceAmpr | sceAmprAmmCommandBufferModifyProtect |
| libSceAmpr | sceAmprAmmCommandBufferModifyProtectWithGpuMaskId |
| libSceAmpr | sceAmprAmmCommandBufferMultiMap |
| libSceAmpr | sceAmprAmmCommandBufferMultiMapWithGpuMaskId |
| libSceAmpr | sceAmprAmmCommandBufferRemap |
| libSceAmpr | sceAmprAmmCommandBufferRemapIntoPrt |
| libSceAmpr | sceAmprAmmCommandBufferRemapWithGpuMaskId |
| libSceAmpr | sceAmprAmmCommandBufferUnmap |
| libSceAmpr | sceAmprAmmCommandBufferUnmapToPrt |
| libSceAmpr | sceAmprAmmGetVirtualAddressRanges |
| libSceAmpr | sceAmprAmmGiveDirectMemory |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeAllocatePaForPrt |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeMap |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeMapAsPrt |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeMapDirect |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeMapDirectWithGpuMaskId |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeMapWithGpuMaskId |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeModifyMtypeProtect |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeModifyMtypeProtectWithGpuMaskId |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeModifyProtect |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeModifyProtectWithGpuMaskId |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeMultiMap |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeMultiMapWithGpuMaskId |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeRemap |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeRemapWithGpuMaskId |
| libSceAmpr | sceAmprAmmMeasureAmmCommandSizeUnmap |
| libSceAmpr | sceAmprAmmSubmitCommandBuffer |
| libSceAmpr | sceAmprAmmSubmitCommandBuffer2 |
| libSceAmpr | sceAmprAmmSubmitCommandBuffer3 |
| libSceAmpr | sceAmprAmmWaitCommandBufferCompletion |
| libSceAppContent | sceAppContentAddcontEnqueueDownload |
| libSceAppContent | sceAppContentGetAddcontInfo |
| libSceAppContent | sceAppContentGetAddcontInfoList |
| libSceAppContent | sceAppContentTemporaryDataUnmount |
| libSceAudio3d | sceAudio3dObjectReserve |
| libSceAudio3d | sceAudio3dObjectUnreserve |
| libSceAudio3d | sceAudio3dTerminate |
| libSceAudioIn | sceAudioInAsyncOpen |
| libSceAudioOut | sceAudioOut2UserGetSupportedAttributes |
| libSceBluetoothHid | sceBluetoothHidGetDeviceName |
| libSceBluetoothHid | sceBluetoothHidGetInputReport |
| libSceBluetoothHid | sceBluetoothHidInit |
| libSceBluetoothHid | sceBluetoothHidRegisterCallback |
| libSceBluetoothHid | sceBluetoothHidRegisterDevice |
| libSceBluetoothHid | sceBluetoothHidSetOutputReport |
| libSceBluetoothHid | sceBluetoothHidUnregisterCallback |
| libSceBluetoothHid | sceBluetoothHidUnregisterDevice |
| libSceCdlgPlayerReview | scePlayerReviewDialogClose |
| libSceCdlgPlayerReview | scePlayerReviewDialogGetResult |
| libSceCdlgPlayerReview | scePlayerReviewDialogGetStatus |
| libSceCdlgPlayerReview | scePlayerReviewDialogInitialize |
| libSceCdlgPlayerReview | scePlayerReviewDialogOpen |
| libSceCdlgPlayerReview | scePlayerReviewDialogTerminate |
| libSceCdlgPlayerReview | scePlayerReviewDialogUpdateStatus |
| libSceContentExport | sceContentExportFromData |
| libSceConvertKeycode | sceConvertKeycodeGetCharacterFromKeyboardData |
| libSceFont | sceFontGraphicsDrawupFillTextureImageObject |
| libSceFont | sceFontGraphicsDrawupFillTexturePatternObject |
| libSceFontFt | LibraryGetGlyphsCount |
| libSceGameLiveStreaming | sceGameLiveStreamingGetCurrentStatus2 |
| libSceGameLiveStreaming | sceGameLiveStreamingGetProgramInfo |
| libSceHmd2 | sceHmd2Close |
| libSceHmd2 | sceHmd2GazeGetResultForFoveatedRendering |
| libSceHmd2 | sceHmd2GetDeviceInformation |
| libSceHmd2 | sceHmd2GetFieldOfViewWithoutHandle |
| libSceHmd2 | sceHmd2Initialize |
| libSceHmd2 | sceHmd2Open |
| ... | 296 more |
📉 GPU shader instructions: 96.14% (-3.77%, -44 reverted instructions)
⚠️ 44 went back to stubs
| Encoding | Name |
|---|---|
| DS | DS_CONDXCHG32_RTN_B64 |
| DS | DS_GWS_BARRIER |
| DS | DS_GWS_INIT |
| DS | DS_GWS_SEMA_BR |
| DS | DS_GWS_SEMA_P |
| DS | DS_GWS_SEMA_RELEASE_ALL |
| DS | DS_GWS_SEMA_V |
| DS | DS_ORDERED_COUNT |
| DS | DS_WRXCHG2ST64_RTN_B32 |
| DS | DS_WRXCHG2ST64_RTN_B64 |
| DS | DS_WRXCHG2_RTN_B32 |
| DS | DS_WRXCHG2_RTN_B64 |
| MIMG | IMAGE_GATHER4H_PCK |
| MIMG | IMAGE_GATHER8H_PCK |
| MIMG | IMAGE_LOAD_BY2 |
| MIMG | IMAGE_LOAD_BY4 |
| MIMG | IMAGE_LOAD_MIP_BY2 |
| MIMG | IMAGE_LOAD_MIP_BY4 |
| MIMG | IMAGE_LOAD_MIP_PCK2 |
| MIMG | IMAGE_LOAD_MIP_PCK4 |
| MIMG | IMAGE_LOAD_PCK2 |
| MIMG | IMAGE_LOAD_PCK4 |
| MIMG | IMAGE_MSAA_LOAD |
| MIMG | IMAGE_STORE_BY2 |
| MIMG | IMAGE_STORE_BY4 |
| MIMG | IMAGE_STORE_MIP_BY2 |
| MIMG | IMAGE_STORE_MIP_BY4 |
| MIMG | IMAGE_STORE_MIP_PCK2 |
| MIMG | IMAGE_STORE_MIP_PCK4 |
| MIMG | IMAGE_STORE_PCK2 |
| MIMG | IMAGE_STORE_PCK4 |
| SMEM | S_SCRATCH_LOAD_DWORD |
| SMEM | S_SCRATCH_LOAD_DWORDX2 |
| SMEM | S_SCRATCH_LOAD_DWORDX4 |
| SOP1 | S_RFE_B64 |
| SOP1 | S_SWAPPC_B64 |
| SOP2 | S_BFE_I64 |
| SOPK | S_CALL_B64 |
| SOPP | S_CODE_END |
| SOPP | S_SENDMSGHALT |
| SOPP | S_SETHALT |
| VOP3 | V_INTERP_P1LL_F16 |
| VOP3 | V_INTERP_P1LV_F16 |
| VOP3 | V_INTERP_P2_F16 |
This was referenced Oct 9, 2026
This was referenced Oct 9, 2026
8 of 9 tasks
8 of 9 tasks
Collaborator
|
Closing: this is your fork's |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR removes a large amount of older AGC driver infrastructure and legacy compatibility scaffolding, while simplifying the build and runtime setup.
What changes:
Removes the vendored libjpeg-turbo submodule and switches JPEG encoding to a stb-based implementation.
Simplifies JPEG encoder API by dropping sampling/restart configuration options and relying on the default path.
Removes several legacy AGC preparation/ABI hooks and associated shader-preparation paths that are no longer used.
Deletes a number of older AGC tests and helper paths that validated deprecated behaviors or internal ABI details.
Adjusts AGC export naming and stubs to match newer/unknown NID patterns, with many previously implemented handlers reduced to stubbed or NotImplemented paths.
Removes or simplifies CI workflow logic and conventions checks to reduce the number of validation gates and compile/test paths.
Removes several obsolete AGC shader/device features and driver helpers, including unused display-buffer and subgroup/profile logic, and strips back some driver validation logic.
Why:
Reduce maintenance burden on older AGC ABI compatibility code.
Remove heavyweight third-party JPEG integration in favor of a simpler in-tree encoder.
Trim stale shader-driver preparation machinery and deprecated tests that no longer reflect current runtime behavior.
This is a broad cleanup/refactor focused on reducing the legacy surface area around AGC and JPEG support while keeping the project buildable with a simpler set of runtime assumptions.