mirror of
https://github.com/Inori/GPCS4.git
synced 2024-05-10 08:44:16 -04:00
add GnmCommandProxy
not used currently
This commit is contained in:
parent
f0a9c75637
commit
7c7bc81039
|
@ -5,6 +5,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
||||
namespace cxxopts
|
||||
{
|
||||
class ParseResult;
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
<ClInclude Include="Graphics\Gcn\GcnShaderRegister.h" />
|
||||
<ClInclude Include="Graphics\Gcn\GcnStateRegister.h" />
|
||||
<ClInclude Include="Graphics\Gcn\GcnUtil.h" />
|
||||
<ClInclude Include="Graphics\Gnm\GnmCommandProxy.h" />
|
||||
<ClInclude Include="Graphics\Gnm\GnmGpuLabel.h" />
|
||||
<ClInclude Include="Graphics\Gnm\GnmInitializer.h" />
|
||||
<ClInclude Include="Graphics\Gnm\GnmRenderState.h" />
|
||||
|
@ -329,6 +330,8 @@
|
|||
<ClCompile Include="Graphics\Gcn\GcnModule.cpp" />
|
||||
<ClCompile Include="Graphics\Gcn\GcnProgramInfo.cpp" />
|
||||
<ClCompile Include="Graphics\Gcn\GcnStateRegister.cpp" />
|
||||
<ClCompile Include="Graphics\Gnm\GnmCommandProxy.cpp" />
|
||||
<ClCompile Include="Graphics\Gnm\GnmCommandProxyTable.cpp" />
|
||||
<ClCompile Include="Graphics\Gnm\GnmGpuLabel.cpp" />
|
||||
<ClCompile Include="Graphics\Gnm\GnmInitializer.cpp" />
|
||||
<ClCompile Include="Graphics\Gnm\GnmResourceFactory.cpp" />
|
||||
|
|
|
@ -967,6 +967,9 @@
|
|||
<ClInclude Include="Graphics\Gcn\ControlFlowGraph\GcnDivergentFlow.h">
|
||||
<Filter>Source Files\Graphics\Gcn\ControlFlowGraph</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Graphics\Gnm\GnmCommandProxy.h">
|
||||
<Filter>Source Files\Graphics\Gnm</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Loader\EbootObject.cpp">
|
||||
|
@ -1698,6 +1701,12 @@
|
|||
<ClCompile Include="Graphics\Gcn\ControlFlowGraph\GcnDivergentFlow.cpp">
|
||||
<Filter>Source Files\Graphics\Gcn\ControlFlowGraph</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Graphics\Gnm\GnmCommandProxy.cpp">
|
||||
<Filter>Source Files\Graphics\Gnm</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Graphics\Gnm\GnmCommandProxyTable.cpp">
|
||||
<Filter>Source Files\Graphics\Gnm</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="Emulator\TLSStub.asm">
|
||||
|
|
11195
GPCS4/Graphics/Gnm/GnmCommandProxy.cpp
Normal file
11195
GPCS4/Graphics/Gnm/GnmCommandProxy.cpp
Normal file
File diff suppressed because it is too large
Load diff
501
GPCS4/Graphics/Gnm/GnmCommandProxy.h
Normal file
501
GPCS4/Graphics/Gnm/GnmCommandProxy.h
Normal file
|
@ -0,0 +1,501 @@
|
|||
#pragma once
|
||||
|
||||
#include "GnmCommon.h"
|
||||
#include "GnmOpCode.h"
|
||||
|
||||
#include <array>
|
||||
|
||||
namespace sce::Gnm
|
||||
{
|
||||
class GnmCommandProxy
|
||||
{
|
||||
public:
|
||||
enum PacketCount : uint32_t
|
||||
{
|
||||
kPacketCountSub_7FFC805A03D0 = 0,
|
||||
kPacketCountPrepareFlip2 = 3,
|
||||
kPacketCountSetVsharpInUserData = 2,
|
||||
kPacketCountSetTsharpInUserData = 2,
|
||||
kPacketCountSetSsharpInUserData = 2,
|
||||
kPacketCountSetUserDataRegion = 2,
|
||||
kPacketCountSetPointerInUserData = 1,
|
||||
kPacketCountSetUserData = 1,
|
||||
kPacketCountPrefetchIntoL2 = 0,
|
||||
kPacketCountRequestVideoFlip = 2,
|
||||
kPacketCountInitializeDefaultHardwareState = 0,
|
||||
kPacketCountInitializeToDefaultContextState = 0,
|
||||
kPacketCountInitializeToDefaultContextState2 = 0,
|
||||
kPacketCountInitializeToDefaultContextState3 = 0,
|
||||
kPacketCountSetupEsGsRingRegisters = 1,
|
||||
kPacketCountSetupGsVsRingRegisters = 4,
|
||||
kPacketCountFlushStreamout = 5,
|
||||
kPacketCountSetStreamoutBufferDimensions = 1,
|
||||
kPacketCountSetStreamoutMapping = 1,
|
||||
kPacketCountWriteStreamoutBufferUpdate = 1,
|
||||
kPacketCountSetComputeShaderControl = 1,
|
||||
kPacketCountSetGraphicsShaderControl = 7,
|
||||
kPacketCountSetGraphicsShaderControl2 = 1,
|
||||
kPacketCountSetGraphicsShaderControl3 = 1,
|
||||
kPacketCountSetGraphicsShaderControl4 = 1,
|
||||
kPacketCountSetGraphicsShaderControl5 = 1,
|
||||
kPacketCountSetGraphicsShaderControl6 = 1,
|
||||
kPacketCountSetGraphicsShaderControl7 = 1,
|
||||
kPacketCountSetComputeResourceManagement = 2,
|
||||
kPacketCountSetComputeResourceManagement2 = 2,
|
||||
kPacketCountSetComputeResourceManagementForNeo = 1,
|
||||
kPacketCountSetComputeResourceManagementForBase = 1,
|
||||
kPacketCountSetGraphicsScratchSize = 1,
|
||||
kPacketCountSetComputeScratchSize = 1,
|
||||
kPacketCountSetViewportTransformControl = 1,
|
||||
kPacketCountSetClipControl = 1,
|
||||
kPacketCountSetUserClipPlane = 1,
|
||||
kPacketCountSetClipRectangle = 1,
|
||||
kPacketCountSetClipRectangleRule = 1,
|
||||
kPacketCountSetPrimitiveSetup = 1,
|
||||
kPacketCountSetPrimitiveResetIndexEnable = 1,
|
||||
kPacketCountSetPrimitiveResetIndex = 1,
|
||||
kPacketCountSetVertexQuantization = 1,
|
||||
kPacketCountSetWindowOffset = 1,
|
||||
kPacketCountSetScreenScissor = 1,
|
||||
kPacketCountSetWindowScissor = 1,
|
||||
kPacketCountSetGenericScissor = 1,
|
||||
kPacketCountSetViewportScissor = 1,
|
||||
kPacketCountSetViewport = 2,
|
||||
kPacketCountSetScanModeControl = 1,
|
||||
kPacketCountSetAaSampleCount = 1,
|
||||
kPacketCountSetAaSampleLocationControl = 2,
|
||||
kPacketCountSetPsShaderRate = 1,
|
||||
kPacketCountSetAaSampleMask = 2,
|
||||
kPacketCountSetAaSampleLocations = 1,
|
||||
kPacketCountSetCentroidPriority = 1,
|
||||
kPacketCountSetLineWidth = 1,
|
||||
kPacketCountSetPointSize = 1,
|
||||
kPacketCountSetPointMinMax = 1,
|
||||
kPacketCountSetPolygonOffsetClamp = 1,
|
||||
kPacketCountSetPolygonOffsetZFormat = 1,
|
||||
kPacketCountSetPolygonOffsetFront = 1,
|
||||
kPacketCountSetPolygonOffsetBack = 1,
|
||||
kPacketCountSetHardwareScreenOffset = 1,
|
||||
kPacketCountSetGuardBandClip = 2,
|
||||
kPacketCountSetGuardBandDiscard = 2,
|
||||
kPacketCountSetInstanceStepRate = 1,
|
||||
kPacketCountSetPsShaderUsage = 1,
|
||||
kPacketCountSetRenderOverrideControl = 1,
|
||||
kPacketCountSetRenderOverride2Control = 1,
|
||||
kPacketCountSetActiveShaderStages = 1,
|
||||
kPacketCountSetGsMode = 1,
|
||||
kPacketCountSetGsOnChipControl = 1,
|
||||
kPacketCountSetBorderColorTableAddr = 1,
|
||||
kPacketCountSetPsShader = 3,
|
||||
kPacketCountSetPsShader2 = 4,
|
||||
kPacketCountSetPsShader3 = 9,
|
||||
kPacketCountSetVsShader = 6,
|
||||
kPacketCountSetEsShader = 3,
|
||||
kPacketCountSetGsShader = 6,
|
||||
kPacketCountSetCsShader = 4,
|
||||
kPacketCountSetLsShader = 4,
|
||||
kPacketCountSetHsShader = 6,
|
||||
kPacketCountUpdatePsShader = 9,
|
||||
kPacketCountUpdateVsShader = 6,
|
||||
kPacketCountUpdateGsShader = 6,
|
||||
kPacketCountUpdateHsShader = 6,
|
||||
kPacketCountWaitOnCe = 1,
|
||||
kPacketCountIncrementDeCounter = 1,
|
||||
kPacketCountReadDataFromGds = 1,
|
||||
kPacketCountSetRenderTarget = 3,
|
||||
kPacketCountSetRenderTarget2 = 2,
|
||||
kPacketCountSetRenderTarget3 = 2,
|
||||
kPacketCountSetRenderTarget4 = 1,
|
||||
kPacketCountSetDepthRenderTarget = 6,
|
||||
kPacketCountSetDepthRenderTarget2 = 2,
|
||||
kPacketCountSetDepthClearValue = 1,
|
||||
kPacketCountSetStencilClearValue = 1,
|
||||
kPacketCountSetCmaskClearColor = 1,
|
||||
kPacketCountSetRenderTargetMask = 1,
|
||||
kPacketCountSetBlendControl = 1,
|
||||
kPacketCountSetBlendColor = 1,
|
||||
kPacketCountSetStencilSeparate = 0,
|
||||
kPacketCountSetAlphaToMaskControl = 1,
|
||||
kPacketCountSetHtileStencil0 = 1,
|
||||
kPacketCountSetHtileStencil1 = 1,
|
||||
kPacketCountSetCbControl = 1,
|
||||
kPacketCountSetDepthStencilDisable = 0,
|
||||
kPacketCountSetDepthBoundsRange = 1,
|
||||
kPacketCountSetStencilOpControl = 1,
|
||||
kPacketCountSetDbRenderControl = 1,
|
||||
kPacketCountSetDbCountControl = 1,
|
||||
kPacketCountSetDepthEqaaControl = 1,
|
||||
kPacketCountSetPrimitiveIdEnable = 1,
|
||||
kPacketCountSetVgtControlForBase = 1,
|
||||
kPacketCountSetVgtControlForNeo = 1,
|
||||
kPacketCountSetVgtControlForNeo2 = 1,
|
||||
kPacketCountSetVertexReuseEnable = 1,
|
||||
kPacketCountSetPrimitiveType = 1,
|
||||
kPacketCountSetIndexSize = 1,
|
||||
kPacketCountSetNumInstances = 1,
|
||||
kPacketCountSetIndexOffset = 1,
|
||||
kPacketCountSetIndexOffset2 = 1,
|
||||
kPacketCountDrawOpaqueAuto = 0,
|
||||
kPacketCountDrawIndexAuto = 0,
|
||||
kPacketCountDrawIndexInline = 0,
|
||||
kPacketCountDrawIndexInline2 = 0,
|
||||
kPacketCountDrawIndex = 0,
|
||||
kPacketCountSetIndexBuffer = 1,
|
||||
kPacketCountSetIndexCount = 1,
|
||||
kPacketCountDrawIndexOffset = 0,
|
||||
kPacketCountSetBaseIndirectArgs = 1,
|
||||
kPacketCountDrawIndirect = 0,
|
||||
kPacketCountDrawIndirectMulti = 0,
|
||||
kPacketCountDrawIndirectCountMulti = 0,
|
||||
kPacketCountDrawIndexIndirect = 0,
|
||||
kPacketCountDrawIndexIndirectMulti = 0,
|
||||
kPacketCountDrawIndexIndirectCountMulti = 0,
|
||||
kPacketCountSetDispatchDrawIndexDeallocationMask = 1,
|
||||
kPacketCountWaitForSetupDispatchDrawKickRingBuffer = 1,
|
||||
kPacketCountDispatchDraw = 0,
|
||||
kPacketCountDispatchWithOrderedAppend = 0,
|
||||
kPacketCountDispatchIndirectWithOrderedAppend = 0,
|
||||
kPacketCountDrawIndexMultiInstanced = 0,
|
||||
kPacketCountWriteOcclusionQuery = 4,
|
||||
kPacketCountWriteOcclusionQuery2 = 2,
|
||||
kPacketCountSetZPassPredicationEnable = 1,
|
||||
kPacketCountSetZPassPredicationDisable = 1,
|
||||
kPacketCountWriteDataInline = 1,
|
||||
kPacketCountWriteDataInlineThroughL2 = 1,
|
||||
kPacketCountWriteAtEndOfPipe = 1,
|
||||
kPacketCountWriteAtEndOfPipeWithInterrupt = 1,
|
||||
kPacketCountTriggerEndOfPipeInterrupt = 1,
|
||||
kPacketCountWriteAtEndOfShader = 1,
|
||||
kPacketCountStallCommandBufferParser = 1,
|
||||
kPacketCountWaitOnAddressAndStallCommandBufferParser = 1,
|
||||
kPacketCountWaitOnRegister = 1,
|
||||
kPacketCountFlushShaderCachesAndWait = 1,
|
||||
kPacketCountSignalSemaphore = 1,
|
||||
kPacketCountWaitSemaphore = 1,
|
||||
kPacketCountWriteEventStats = 1,
|
||||
kPacketCountDmaData = 1,
|
||||
kPacketCountDisableOrderedAppendAllocationCounter = 0,
|
||||
kPacketCountEnableOrderedAppendAllocationCounter = 0,
|
||||
kPacketCountSetVsShaderStreamoutEnable = 1,
|
||||
kPacketCountSetupDrawOpaqueParameters = 3,
|
||||
kPacketCountRequestMipStatsReportAndReset = 1,
|
||||
kPacketCountSetGuardBands = 1,
|
||||
kPacketCountSetPredication = 1,
|
||||
kPacketCountPrepareFlip = 7,
|
||||
kPacketCountSetObjectId = 1,
|
||||
kPacketCountSetObjectIdMode = 1,
|
||||
kPacketCountSetDrawPayloadControl = 1,
|
||||
kPacketCountResetFoveatedWindow = 1,
|
||||
kPacketCountSetFoveatedWindow = 1,
|
||||
kPacketCountSetPsShaderSampleExclusionMask = 1,
|
||||
kPacketCountSetScaledResolutionGrid = 1,
|
||||
kPacketCountSetTessellationDistributionThresholds = 1,
|
||||
kPacketCountSetTextureGradientFactors = 1,
|
||||
kPacketCountSetVgtNumInstances = 1,
|
||||
kPacketCountRttvThreadTraceMarker = 2,
|
||||
kPacketCountRttvThreadTraceMarker2 = 1,
|
||||
kPacketCountSetContextRegisterWithIndex = 1,
|
||||
kPacketCountSetContextRegister = 1,
|
||||
kPacketCountSetConfigRegister = 1,
|
||||
kPacketCountSetUserConfigRegisterWithIndex = 1,
|
||||
kPacketCountSetUserConfigRegister = 1,
|
||||
kPacketCountSetPersistentRegister = 1,
|
||||
kPacketCountSetContextRegisterRange = 1,
|
||||
kPacketCountSetConfigRegisterRange = 1,
|
||||
kPacketCountSetUserConfigRegisterRange = 1,
|
||||
kPacketCountSetPersistentRegisterRange = 1,
|
||||
kPacketCountChainCommandBuffer = 1,
|
||||
kPacketCountPause = 1,
|
||||
kPacketCountTriggerEvent = 1,
|
||||
kPacketCountWaitOnAddress = 1,
|
||||
kPacketCountWaitForGraphicsWrites = 1,
|
||||
kPacketCountInsertNop = 1,
|
||||
kPacketCountInsertNop2 = 1,
|
||||
kPacketCountIncrementCeCounter = 1,
|
||||
kPacketCountIncrementCeCounterForDispatchDraw = 1,
|
||||
kPacketCountWaitOnDeCounterDiff = 1,
|
||||
kPacketCountWriteToCpRam = 1,
|
||||
kPacketCountCpRamDump = 1,
|
||||
kPacketCountChainCommandBuffer2 = 1,
|
||||
kPacketCountCallCommandBuffer = 1,
|
||||
kPacketCountInitializeDefaultHardwareState2 = 0,
|
||||
kPacketCountSetQueuePriority = 1,
|
||||
kPacketCountDispatchIndirectWithOrderedAppend2 = 0,
|
||||
kPacketCountSub_7FFC805A03E0 = 0,
|
||||
kPacketCountSetVsharpInUserData2 = 2,
|
||||
kPacketCountSetTsharpInUserData2 = 2,
|
||||
kPacketCountSetSsharpInUserData2 = 2,
|
||||
kPacketCountSetUserDataRegion2 = 2,
|
||||
kPacketCountSetPointerInUserData2 = 1,
|
||||
kPacketCountSetUserData2 = 1,
|
||||
kPacketCountPrefetchIntoL22 = 0,
|
||||
kPacketCountReadDataFromGds2 = 1,
|
||||
kPacketCountWaitOnAddress2 = 3,
|
||||
kPacketCountDispatchDraw2 = 0,
|
||||
kPacketCountFlushShaderCachesAndWait2 = 1,
|
||||
kPacketCountEnableOrderedAppendAllocationCounter2 = 0,
|
||||
kPacketCountSetupDispatchDrawKickRingBuffer = 2,
|
||||
kPacketCountSetScratchSize = 1,
|
||||
kPacketCountTriggerReleaseMemEventInterrupt = 1,
|
||||
kPacketCountWaitForResume = 0,
|
||||
kPacketCountWriteResume = 1,
|
||||
kPacketCountEnableQueueQuantumTimer = 1,
|
||||
kPacketCountDisableQueueQuantumTimer = 1,
|
||||
kPacketCountInsertRttvDingDongMarker = 6,
|
||||
kPacketCountRttvThreadTraceMarker3 = 1,
|
||||
kPacketCountSetQueueRegister = 1,
|
||||
kPacketCountCallCommandBuffer2 = 1,
|
||||
kPacketCountWaitForGraphicsWrites2 = 1,
|
||||
kPacketCountWriteResumeEventWithInterrupt = 1,
|
||||
kPacketCountWriteWaitMemCmd = 1,
|
||||
};
|
||||
public:
|
||||
GnmCommandProxy();
|
||||
~GnmCommandProxy();
|
||||
|
||||
private:
|
||||
uint32_t sub_7FFC805A03D0(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t prepareFlip2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVsharpInUserData(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setTsharpInUserData(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setSsharpInUserData(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setUserDataRegion(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPointerInUserData(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setUserData(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t prefetchIntoL2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t requestVideoFlip(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t initializeDefaultHardwareState(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t initializeToDefaultContextState(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t initializeToDefaultContextState2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t initializeToDefaultContextState3(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setupEsGsRingRegisters(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setupGsVsRingRegisters(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t flushStreamout(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setStreamoutBufferDimensions(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setStreamoutMapping(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeStreamoutBufferUpdate(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setComputeShaderControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGraphicsShaderControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGraphicsShaderControl2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGraphicsShaderControl3(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGraphicsShaderControl4(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGraphicsShaderControl5(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGraphicsShaderControl6(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGraphicsShaderControl7(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setComputeResourceManagement(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setComputeResourceManagement2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setComputeResourceManagementForNeo(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setComputeResourceManagementForBase(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGraphicsScratchSize(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setComputeScratchSize(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setViewportTransformControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setClipControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setUserClipPlane(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setClipRectangle(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setClipRectangleRule(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPrimitiveSetup(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPrimitiveResetIndexEnable(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPrimitiveResetIndex(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVertexQuantization(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setWindowOffset(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setScreenScissor(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setWindowScissor(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGenericScissor(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setViewportScissor(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setViewport(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setScanModeControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setAaSampleCount(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setAaSampleLocationControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPsShaderRate(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setAaSampleMask(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setAaSampleLocations(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setCentroidPriority(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setLineWidth(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPointSize(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPointMinMax(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPolygonOffsetClamp(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPolygonOffsetZFormat(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPolygonOffsetFront(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPolygonOffsetBack(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setHardwareScreenOffset(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGuardBandClip(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGuardBandDiscard(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setInstanceStepRate(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPsShaderUsage(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setRenderOverrideControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setRenderOverride2Control(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setActiveShaderStages(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGsMode(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGsOnChipControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setBorderColorTableAddr(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPsShader2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPsShader3(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setEsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setCsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setLsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setHsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t updatePsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t updateVsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t updateGsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t updateHsShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitOnCe(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t incrementDeCounter(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t readDataFromGds(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setRenderTarget(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setRenderTarget2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setRenderTarget3(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setRenderTarget4(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDepthRenderTarget(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDepthRenderTarget2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDepthClearValue(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setStencilClearValue(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setCmaskClearColor(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setRenderTargetMask(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setBlendControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setBlendColor(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setStencilSeparate(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setAlphaToMaskControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setHtileStencil0(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setHtileStencil1(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setCbControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDepthStencilDisable(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDepthBoundsRange(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setStencilOpControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDbRenderControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDbCountControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDepthEqaaControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPrimitiveIdEnable(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVgtControlForBase(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVgtControlForNeo(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVgtControlForNeo2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVertexReuseEnable(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPrimitiveType(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setIndexSize(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setNumInstances(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setIndexOffset(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setIndexOffset2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawOpaqueAuto(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndexAuto(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndexInline(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndexInline2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndex(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setIndexBuffer(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setIndexCount(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndexOffset(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setBaseIndirectArgs(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndirect(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndirectMulti(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndirectCountMulti(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndexIndirect(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndexIndirectMulti(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndexIndirectCountMulti(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDispatchDrawIndexDeallocationMask(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitForSetupDispatchDrawKickRingBuffer(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t dispatchDraw(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t dispatchWithOrderedAppend(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t dispatchIndirectWithOrderedAppend(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t drawIndexMultiInstanced(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeOcclusionQuery(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeOcclusionQuery2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setZPassPredicationEnable(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setZPassPredicationDisable(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeDataInline(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeDataInlineThroughL2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeAtEndOfPipe(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeAtEndOfPipeWithInterrupt(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t triggerEndOfPipeInterrupt(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeAtEndOfShader(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t stallCommandBufferParser(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitOnAddressAndStallCommandBufferParser(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitOnRegister(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t flushShaderCachesAndWait(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t signalSemaphore(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitSemaphore(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeEventStats(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t dmaData(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t disableOrderedAppendAllocationCounter(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t enableOrderedAppendAllocationCounter(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVsShaderStreamoutEnable(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setupDrawOpaqueParameters(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t requestMipStatsReportAndReset(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setGuardBands(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPredication(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t prepareFlip(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setObjectId(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setObjectIdMode(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setDrawPayloadControl(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t resetFoveatedWindow(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setFoveatedWindow(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPsShaderSampleExclusionMask(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setScaledResolutionGrid(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setTessellationDistributionThresholds(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setTextureGradientFactors(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVgtNumInstances(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t RttvThreadTraceMarker(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t RttvThreadTraceMarker2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setContextRegisterWithIndex(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setContextRegister(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setConfigRegister(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setUserConfigRegisterWithIndex(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setUserConfigRegister(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPersistentRegister(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setContextRegisterRange(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setConfigRegisterRange(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setUserConfigRegisterRange(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPersistentRegisterRange(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t chainCommandBuffer(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t pause(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t triggerEvent(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitOnAddress(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitForGraphicsWrites(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t insertNop(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t insertNop2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t incrementCeCounter(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t incrementCeCounterForDispatchDraw(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitOnDeCounterDiff(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeToCpRam(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t cpRamDump(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t chainCommandBuffer2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t callCommandBuffer(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t initializeDefaultHardwareState2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setQueuePriority(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t dispatchIndirectWithOrderedAppend2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t sub_7FFC805A03E0(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setVsharpInUserData2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setTsharpInUserData2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setSsharpInUserData2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setUserDataRegion2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setPointerInUserData2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setUserData2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t prefetchIntoL22(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t readDataFromGds2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitOnAddress2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t dispatchDraw2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t flushShaderCachesAndWait2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t enableOrderedAppendAllocationCounter2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setupDispatchDrawKickRingBuffer(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setScratchSize(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t triggerReleaseMemEventInterrupt(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitForResume(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeResume(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t enableQueueQuantumTimer(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t disableQueueQuantumTimer(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t insertRttvDingDongMarker(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t RttvThreadTraceMarker3(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t setQueueRegister(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t callCommandBuffer2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t waitForGraphicsWrites2(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeResumeEventWithInterrupt(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
uint32_t writeWaitMemCmd(PPM4_TYPE_3_HEADER pm4Hdr);
|
||||
|
||||
private:
|
||||
using ProxyFunction = uint32_t (GnmCommandProxy::*)(PPM4_TYPE_3_HEADER);
|
||||
static const std::array<
|
||||
const std::array<ProxyFunction, 88>, 259> m_proxyTable;
|
||||
};
|
||||
|
||||
|
||||
} // namespace sce::Gnm
|
913
GPCS4/Graphics/Gnm/GnmCommandProxyTable.cpp
Normal file
913
GPCS4/Graphics/Gnm/GnmCommandProxyTable.cpp
Normal file
|
@ -0,0 +1,913 @@
|
|||
#include "GnmCommandProxy.h"
|
||||
|
||||
namespace sce::Gnm
|
||||
{
|
||||
const std::array<const std::array<GnmCommandProxy::ProxyFunction, 88>, 259> GnmCommandProxy::m_proxyTable = { {
|
||||
// IT_UNKNOWN_0
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_1
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_2
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_3
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_4
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_5
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_6
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_7
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_8
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_9
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_A
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F
|
||||
{ nullptr },
|
||||
// IT_NOP
|
||||
{
|
||||
&GnmCommandProxy::sub_7FFC805A03D0,
|
||||
&GnmCommandProxy::setVsharpInUserData,
|
||||
&GnmCommandProxy::setTsharpInUserData,
|
||||
&GnmCommandProxy::setSsharpInUserData,
|
||||
&GnmCommandProxy::setUserDataRegion,
|
||||
&GnmCommandProxy::insertNop,
|
||||
&GnmCommandProxy::sub_7FFC805A03E0,
|
||||
&GnmCommandProxy::setVsharpInUserData2,
|
||||
&GnmCommandProxy::setTsharpInUserData2,
|
||||
&GnmCommandProxy::setSsharpInUserData2,
|
||||
&GnmCommandProxy::setUserDataRegion2,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_SET_BASE
|
||||
{
|
||||
&GnmCommandProxy::setBaseIndirectArgs,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_CLEAR_STATE
|
||||
{ nullptr },
|
||||
// IT_INDEX_BUFFER_SIZE
|
||||
{
|
||||
&GnmCommandProxy::setIndexCount,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_14
|
||||
{ nullptr },
|
||||
// IT_DISPATCH_DIRECT
|
||||
{
|
||||
&GnmCommandProxy::dispatchWithOrderedAppend,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DISPATCH_INDIRECT
|
||||
{
|
||||
&GnmCommandProxy::dispatchIndirectWithOrderedAppend,
|
||||
&GnmCommandProxy::dispatchIndirectWithOrderedAppend2,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_INDIRECT_BUFFER_END
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_18
|
||||
{ nullptr },
|
||||
// IT_INDIRECT_BUFFER_CNST_END
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_1A
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_1B
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_1C
|
||||
{ nullptr },
|
||||
// IT_ATOMIC_GDS
|
||||
{ nullptr },
|
||||
// IT_ATOMIC_MEM
|
||||
{ nullptr },
|
||||
// IT_OCCLUSION_QUERY
|
||||
{ nullptr },
|
||||
// IT_SET_PREDICATION
|
||||
{
|
||||
&GnmCommandProxy::setZPassPredicationEnable,
|
||||
&GnmCommandProxy::setZPassPredicationDisable,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_REG_RMW
|
||||
{ nullptr },
|
||||
// IT_COND_EXEC
|
||||
{
|
||||
&GnmCommandProxy::setPredication,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_PRED_EXEC
|
||||
{ nullptr },
|
||||
// IT_DRAW_INDIRECT
|
||||
{
|
||||
&GnmCommandProxy::drawIndirect,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_INDEX_INDIRECT
|
||||
{
|
||||
&GnmCommandProxy::drawIndexIndirect,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_INDEX_BASE
|
||||
{
|
||||
&GnmCommandProxy::setIndexBuffer,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_INDEX_2
|
||||
{
|
||||
&GnmCommandProxy::drawIndexInline2,
|
||||
&GnmCommandProxy::drawIndex,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_CONTEXT_CONTROL
|
||||
{
|
||||
&GnmCommandProxy::initializeDefaultHardwareState,
|
||||
&GnmCommandProxy::initializeToDefaultContextState,
|
||||
&GnmCommandProxy::initializeToDefaultContextState2,
|
||||
&GnmCommandProxy::initializeToDefaultContextState3,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_29
|
||||
{ nullptr },
|
||||
// IT_INDEX_TYPE
|
||||
{
|
||||
&GnmCommandProxy::setIndexSize,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_2B
|
||||
{ nullptr },
|
||||
// IT_DRAW_INDIRECT_MULTI
|
||||
{
|
||||
&GnmCommandProxy::drawIndirectMulti,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_INDEX_AUTO
|
||||
{
|
||||
&GnmCommandProxy::drawOpaqueAuto,
|
||||
&GnmCommandProxy::drawIndexAuto,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_2E
|
||||
{
|
||||
&GnmCommandProxy::drawIndexInline,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_NUM_INSTANCES
|
||||
{
|
||||
&GnmCommandProxy::setNumInstances,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_INDEX_MULTI_AUTO
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_31
|
||||
{ nullptr },
|
||||
// IT_INDIRECT_BUFFER_PRIV
|
||||
{ nullptr },
|
||||
// IT_INDIRECT_BUFFER_CNST
|
||||
{
|
||||
&GnmCommandProxy::chainCommandBuffer2,
|
||||
&GnmCommandProxy::callCommandBuffer,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_STRMOUT_BUFFER_UPDATE
|
||||
{
|
||||
&GnmCommandProxy::writeStreamoutBufferUpdate,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_INDEX_OFFSET_2
|
||||
{
|
||||
&GnmCommandProxy::drawIndexOffset,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_PREAMBLE
|
||||
{ nullptr },
|
||||
// IT_WRITE_DATA
|
||||
{
|
||||
&GnmCommandProxy::prepareFlip2,
|
||||
&GnmCommandProxy::requestVideoFlip,
|
||||
&GnmCommandProxy::writeDataInline,
|
||||
&GnmCommandProxy::writeDataInlineThroughL2,
|
||||
&GnmCommandProxy::writeResume,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_INDEX_INDIRECT_MULTI
|
||||
{
|
||||
&GnmCommandProxy::drawIndexIndirectMulti,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_MEM_SEMAPHORE
|
||||
{
|
||||
&GnmCommandProxy::signalSemaphore,
|
||||
&GnmCommandProxy::waitSemaphore,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_INDEX_MULTI_INST
|
||||
{
|
||||
&GnmCommandProxy::drawIndexMultiInstanced,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_COPY_DW
|
||||
{ nullptr },
|
||||
// IT_WAIT_REG_MEM
|
||||
{
|
||||
&GnmCommandProxy::waitOnAddressAndStallCommandBufferParser,
|
||||
&GnmCommandProxy::waitOnRegister,
|
||||
&GnmCommandProxy::waitOnAddress,
|
||||
&GnmCommandProxy::waitForResume,
|
||||
&GnmCommandProxy::writeWaitMemCmd,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_3D
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_3E
|
||||
{ nullptr },
|
||||
// IT_INDIRECT_BUFFER
|
||||
{
|
||||
&GnmCommandProxy::prepareFlip,
|
||||
&GnmCommandProxy::chainCommandBuffer,
|
||||
&GnmCommandProxy::callCommandBuffer2,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_COPY_DATA
|
||||
{ nullptr },
|
||||
// IT_CP_DMA
|
||||
{ nullptr },
|
||||
// IT_PFP_SYNC_ME
|
||||
{
|
||||
&GnmCommandProxy::stallCommandBufferParser,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_SURFACE_SYNC
|
||||
{ nullptr },
|
||||
// IT_ME_INITIALIZE
|
||||
{ nullptr },
|
||||
// IT_COND_WRITE
|
||||
{ nullptr },
|
||||
// IT_EVENT_WRITE
|
||||
{
|
||||
&GnmCommandProxy::flushStreamout,
|
||||
&GnmCommandProxy::writeOcclusionQuery2,
|
||||
&GnmCommandProxy::writeEventStats,
|
||||
&GnmCommandProxy::RttvThreadTraceMarker,
|
||||
&GnmCommandProxy::RttvThreadTraceMarker2,
|
||||
&GnmCommandProxy::triggerEvent,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_EVENT_WRITE_EOP
|
||||
{
|
||||
&GnmCommandProxy::writeAtEndOfPipe,
|
||||
&GnmCommandProxy::writeAtEndOfPipeWithInterrupt,
|
||||
&GnmCommandProxy::triggerEndOfPipeInterrupt,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_EVENT_WRITE_EOS
|
||||
{
|
||||
&GnmCommandProxy::readDataFromGds,
|
||||
&GnmCommandProxy::writeAtEndOfShader,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_RELEASE_MEM
|
||||
{
|
||||
&GnmCommandProxy::readDataFromGds2,
|
||||
&GnmCommandProxy::triggerReleaseMemEventInterrupt,
|
||||
&GnmCommandProxy::writeResumeEventWithInterrupt,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_PREAMBLE_CNTL
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_4B
|
||||
{ nullptr },
|
||||
// IT_DRAW_RESERVED0
|
||||
{ nullptr },
|
||||
// IT_DRAW_RESERVED1
|
||||
{ nullptr },
|
||||
// IT_DRAW_RESERVED2
|
||||
{ nullptr },
|
||||
// IT_DRAW_RESERVED3
|
||||
{ nullptr },
|
||||
// IT_DMA_DATA
|
||||
{
|
||||
&GnmCommandProxy::prefetchIntoL2,
|
||||
&GnmCommandProxy::writeOcclusionQuery,
|
||||
&GnmCommandProxy::dmaData,
|
||||
&GnmCommandProxy::prefetchIntoL22,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_CONTEXT_REG_RMW
|
||||
{ nullptr },
|
||||
// IT_GFX_CNTX_UPDATE
|
||||
{ nullptr },
|
||||
// IT_BLK_CNTX_UPDATE
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_54
|
||||
{ nullptr },
|
||||
// IT_INCR_UPDT_STATE
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_56
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_57
|
||||
{ nullptr },
|
||||
// IT_ACQUIRE_MEM
|
||||
{
|
||||
&GnmCommandProxy::flushShaderCachesAndWait,
|
||||
&GnmCommandProxy::waitForGraphicsWrites,
|
||||
&GnmCommandProxy::flushShaderCachesAndWait2,
|
||||
&GnmCommandProxy::waitForGraphicsWrites2,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_REWIND
|
||||
{
|
||||
&GnmCommandProxy::pause,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_INTERRUPT
|
||||
{ nullptr },
|
||||
// IT_GEN_PDEPTE
|
||||
{ nullptr },
|
||||
// IT_INDIRECT_BUFFER_PASID
|
||||
{ nullptr },
|
||||
// IT_PRIME_UTCL2
|
||||
{ nullptr },
|
||||
// IT_LOAD_UCONFIG_REG
|
||||
{ nullptr },
|
||||
// IT_LOAD_SH_REG
|
||||
{ nullptr },
|
||||
// IT_LOAD_CONFIG_REG
|
||||
{ nullptr },
|
||||
// IT_LOAD_CONTEXT_REG
|
||||
{ nullptr },
|
||||
// IT_LOAD_COMPUTE_STATE
|
||||
{ nullptr },
|
||||
// IT_LOAD_SH_REG_INDEX
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_64
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_65
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_66
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_67
|
||||
{ nullptr },
|
||||
// IT_SET_CONFIG_REG
|
||||
{
|
||||
&GnmCommandProxy::setIndexOffset2,
|
||||
&GnmCommandProxy::setConfigRegister,
|
||||
&GnmCommandProxy::setConfigRegisterRange,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_SET_CONTEXT_REG
|
||||
{
|
||||
&GnmCommandProxy::setupEsGsRingRegisters,
|
||||
&GnmCommandProxy::setupGsVsRingRegisters,
|
||||
&GnmCommandProxy::setStreamoutBufferDimensions,
|
||||
&GnmCommandProxy::setStreamoutMapping,
|
||||
&GnmCommandProxy::setGraphicsScratchSize,
|
||||
&GnmCommandProxy::setViewportTransformControl,
|
||||
&GnmCommandProxy::setClipControl,
|
||||
&GnmCommandProxy::setUserClipPlane,
|
||||
&GnmCommandProxy::setClipRectangle,
|
||||
&GnmCommandProxy::setClipRectangleRule,
|
||||
&GnmCommandProxy::setPrimitiveSetup,
|
||||
&GnmCommandProxy::setPrimitiveResetIndexEnable,
|
||||
&GnmCommandProxy::setPrimitiveResetIndex,
|
||||
&GnmCommandProxy::setVertexQuantization,
|
||||
&GnmCommandProxy::setWindowOffset,
|
||||
&GnmCommandProxy::setScreenScissor,
|
||||
&GnmCommandProxy::setWindowScissor,
|
||||
&GnmCommandProxy::setGenericScissor,
|
||||
&GnmCommandProxy::setViewportScissor,
|
||||
&GnmCommandProxy::setViewport,
|
||||
&GnmCommandProxy::setScanModeControl,
|
||||
&GnmCommandProxy::setAaSampleCount,
|
||||
&GnmCommandProxy::setAaSampleLocationControl,
|
||||
&GnmCommandProxy::setPsShaderRate,
|
||||
&GnmCommandProxy::setAaSampleMask,
|
||||
&GnmCommandProxy::setAaSampleLocations,
|
||||
&GnmCommandProxy::setCentroidPriority,
|
||||
&GnmCommandProxy::setLineWidth,
|
||||
&GnmCommandProxy::setPointSize,
|
||||
&GnmCommandProxy::setPointMinMax,
|
||||
&GnmCommandProxy::setPolygonOffsetClamp,
|
||||
&GnmCommandProxy::setPolygonOffsetZFormat,
|
||||
&GnmCommandProxy::setPolygonOffsetFront,
|
||||
&GnmCommandProxy::setPolygonOffsetBack,
|
||||
&GnmCommandProxy::setHardwareScreenOffset,
|
||||
&GnmCommandProxy::setGuardBandClip,
|
||||
&GnmCommandProxy::setGuardBandDiscard,
|
||||
&GnmCommandProxy::setInstanceStepRate,
|
||||
&GnmCommandProxy::setPsShaderUsage,
|
||||
&GnmCommandProxy::setRenderOverrideControl,
|
||||
&GnmCommandProxy::setRenderOverride2Control,
|
||||
&GnmCommandProxy::setActiveShaderStages,
|
||||
&GnmCommandProxy::setGsMode,
|
||||
&GnmCommandProxy::setGsOnChipControl,
|
||||
&GnmCommandProxy::setBorderColorTableAddr,
|
||||
&GnmCommandProxy::setRenderTarget,
|
||||
&GnmCommandProxy::setRenderTarget2,
|
||||
&GnmCommandProxy::setRenderTarget3,
|
||||
&GnmCommandProxy::setRenderTarget4,
|
||||
&GnmCommandProxy::setDepthRenderTarget,
|
||||
&GnmCommandProxy::setDepthRenderTarget2,
|
||||
&GnmCommandProxy::setDepthClearValue,
|
||||
&GnmCommandProxy::setStencilClearValue,
|
||||
&GnmCommandProxy::setCmaskClearColor,
|
||||
&GnmCommandProxy::setRenderTargetMask,
|
||||
&GnmCommandProxy::setBlendControl,
|
||||
&GnmCommandProxy::setBlendColor,
|
||||
&GnmCommandProxy::setStencilSeparate,
|
||||
&GnmCommandProxy::setAlphaToMaskControl,
|
||||
&GnmCommandProxy::setHtileStencil0,
|
||||
&GnmCommandProxy::setHtileStencil1,
|
||||
&GnmCommandProxy::setCbControl,
|
||||
&GnmCommandProxy::setDepthStencilDisable,
|
||||
&GnmCommandProxy::setDepthBoundsRange,
|
||||
&GnmCommandProxy::setStencilOpControl,
|
||||
&GnmCommandProxy::setDbRenderControl,
|
||||
&GnmCommandProxy::setDbCountControl,
|
||||
&GnmCommandProxy::setDepthEqaaControl,
|
||||
&GnmCommandProxy::setPrimitiveIdEnable,
|
||||
&GnmCommandProxy::setVgtControlForBase,
|
||||
&GnmCommandProxy::setVgtControlForNeo,
|
||||
&GnmCommandProxy::setVertexReuseEnable,
|
||||
&GnmCommandProxy::setIndexOffset,
|
||||
&GnmCommandProxy::setDispatchDrawIndexDeallocationMask,
|
||||
&GnmCommandProxy::setVsShaderStreamoutEnable,
|
||||
&GnmCommandProxy::setupDrawOpaqueParameters,
|
||||
&GnmCommandProxy::setGuardBands,
|
||||
&GnmCommandProxy::setObjectIdMode,
|
||||
&GnmCommandProxy::setDrawPayloadControl,
|
||||
&GnmCommandProxy::resetFoveatedWindow,
|
||||
&GnmCommandProxy::setFoveatedWindow,
|
||||
&GnmCommandProxy::setPsShaderSampleExclusionMask,
|
||||
&GnmCommandProxy::setScaledResolutionGrid,
|
||||
&GnmCommandProxy::setTessellationDistributionThresholds,
|
||||
&GnmCommandProxy::setContextRegisterWithIndex,
|
||||
&GnmCommandProxy::setContextRegister,
|
||||
&GnmCommandProxy::setContextRegisterRange,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_SET_CONTEXT_REG_INDEX
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_6B
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_6C
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_6D
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_6E
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_6F
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_70
|
||||
{ nullptr },
|
||||
// IT_SET_VGPR_REG_DI_MULTI
|
||||
{ nullptr },
|
||||
// IT_SET_SH_REG_DI
|
||||
{ nullptr },
|
||||
// IT_SET_CONTEXT_REG_INDIRECT
|
||||
{ nullptr },
|
||||
// IT_SET_SH_REG_DI_MULTI
|
||||
{ nullptr },
|
||||
// IT_GFX_PIPE_LOCK
|
||||
{ nullptr },
|
||||
// IT_SET_SH_REG
|
||||
{
|
||||
&GnmCommandProxy::setPointerInUserData,
|
||||
&GnmCommandProxy::setUserData,
|
||||
&GnmCommandProxy::setComputeShaderControl,
|
||||
&GnmCommandProxy::setGraphicsShaderControl,
|
||||
&GnmCommandProxy::setGraphicsShaderControl2,
|
||||
&GnmCommandProxy::setGraphicsShaderControl3,
|
||||
&GnmCommandProxy::setGraphicsShaderControl4,
|
||||
&GnmCommandProxy::setGraphicsShaderControl5,
|
||||
&GnmCommandProxy::setGraphicsShaderControl6,
|
||||
&GnmCommandProxy::setGraphicsShaderControl7,
|
||||
&GnmCommandProxy::setComputeResourceManagement,
|
||||
&GnmCommandProxy::setComputeResourceManagement2,
|
||||
&GnmCommandProxy::setComputeResourceManagementForNeo,
|
||||
&GnmCommandProxy::setComputeResourceManagementForBase,
|
||||
&GnmCommandProxy::setComputeScratchSize,
|
||||
&GnmCommandProxy::setPsShader,
|
||||
&GnmCommandProxy::setPsShader2,
|
||||
&GnmCommandProxy::setPsShader3,
|
||||
&GnmCommandProxy::setVsShader,
|
||||
&GnmCommandProxy::setEsShader,
|
||||
&GnmCommandProxy::setGsShader,
|
||||
&GnmCommandProxy::setCsShader,
|
||||
&GnmCommandProxy::setLsShader,
|
||||
&GnmCommandProxy::setHsShader,
|
||||
&GnmCommandProxy::updatePsShader,
|
||||
&GnmCommandProxy::updateVsShader,
|
||||
&GnmCommandProxy::updateGsShader,
|
||||
&GnmCommandProxy::updateHsShader,
|
||||
&GnmCommandProxy::setPersistentRegister,
|
||||
&GnmCommandProxy::setPersistentRegisterRange,
|
||||
&GnmCommandProxy::initializeDefaultHardwareState2,
|
||||
&GnmCommandProxy::setPointerInUserData2,
|
||||
&GnmCommandProxy::setUserData2,
|
||||
&GnmCommandProxy::setScratchSize,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_SET_SH_REG_OFFSET
|
||||
{ nullptr },
|
||||
// IT_SET_QUEUE_REG
|
||||
{
|
||||
&GnmCommandProxy::setQueuePriority,
|
||||
&GnmCommandProxy::enableQueueQuantumTimer,
|
||||
&GnmCommandProxy::disableQueueQuantumTimer,
|
||||
&GnmCommandProxy::setQueueRegister,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_SET_UCONFIG_REG
|
||||
{
|
||||
&GnmCommandProxy::setVgtControlForNeo2,
|
||||
&GnmCommandProxy::setPrimitiveType,
|
||||
&GnmCommandProxy::disableOrderedAppendAllocationCounter,
|
||||
&GnmCommandProxy::enableOrderedAppendAllocationCounter,
|
||||
&GnmCommandProxy::setObjectId,
|
||||
&GnmCommandProxy::setTextureGradientFactors,
|
||||
&GnmCommandProxy::setVgtNumInstances,
|
||||
&GnmCommandProxy::setUserConfigRegisterWithIndex,
|
||||
&GnmCommandProxy::setUserConfigRegister,
|
||||
&GnmCommandProxy::setUserConfigRegisterRange,
|
||||
&GnmCommandProxy::waitOnAddress2,
|
||||
&GnmCommandProxy::enableOrderedAppendAllocationCounter2,
|
||||
&GnmCommandProxy::insertRttvDingDongMarker,
|
||||
&GnmCommandProxy::RttvThreadTraceMarker3,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_SET_UCONFIG_REG_INDEX
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_7B
|
||||
{ nullptr },
|
||||
// IT_FORWARD_HEADER
|
||||
{ nullptr },
|
||||
// IT_SCRATCH_RAM_WRITE
|
||||
{ nullptr },
|
||||
// IT_SCRATCH_RAM_READ
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_7F
|
||||
{ nullptr },
|
||||
// IT_LOAD_CONST_RAM
|
||||
{ nullptr },
|
||||
// IT_WRITE_CONST_RAM
|
||||
{
|
||||
&GnmCommandProxy::writeToCpRam,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_82
|
||||
{ nullptr },
|
||||
// IT_DUMP_CONST_RAM
|
||||
{
|
||||
&GnmCommandProxy::cpRamDump,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_INCREMENT_CE_COUNTER
|
||||
{
|
||||
&GnmCommandProxy::incrementCeCounter,
|
||||
&GnmCommandProxy::incrementCeCounterForDispatchDraw,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_INCREMENT_DE_COUNTER
|
||||
{
|
||||
&GnmCommandProxy::incrementDeCounter,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_WAIT_ON_CE_COUNTER
|
||||
{
|
||||
&GnmCommandProxy::waitOnCe,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_87
|
||||
{ nullptr },
|
||||
// IT_WAIT_ON_DE_COUNTER_DIFF
|
||||
{
|
||||
&GnmCommandProxy::waitOnDeCounterDiff,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_89
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_8A
|
||||
{ nullptr },
|
||||
// IT_SWITCH_BUFFER
|
||||
{ nullptr },
|
||||
// IT_DISPATCH_DRAW_PREAMBLE__GFX09
|
||||
{
|
||||
&GnmCommandProxy::waitForSetupDispatchDrawKickRingBuffer,
|
||||
&GnmCommandProxy::setupDispatchDrawKickRingBuffer,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_UNKNOWN_8D
|
||||
{
|
||||
&GnmCommandProxy::dispatchDraw,
|
||||
&GnmCommandProxy::dispatchDraw2,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_GET_LOD_STATS__GFX09
|
||||
{
|
||||
&GnmCommandProxy::requestMipStatsReportAndReset,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_MULTI_PREAMBLE__GFX09
|
||||
{ nullptr },
|
||||
// IT_FRAME_CONTROL
|
||||
{ nullptr },
|
||||
// IT_INDEX_ATTRIBUTES_INDIRECT
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_92
|
||||
{ nullptr },
|
||||
// IT_WAIT_REG_MEM64
|
||||
{ nullptr },
|
||||
// IT_COND_PREEMPT
|
||||
{ nullptr },
|
||||
// IT_HDP_FLUSH
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_96
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_97
|
||||
{ nullptr },
|
||||
// IT_INVALIDATE_TLBS
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_99
|
||||
{ nullptr },
|
||||
// IT_DMA_DATA_FILL_MULTI
|
||||
{ nullptr },
|
||||
// IT_SET_SH_REG_INDEX
|
||||
{ nullptr },
|
||||
// IT_DRAW_INDIRECT_COUNT_MULTI
|
||||
{
|
||||
&GnmCommandProxy::drawIndirectCountMulti,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DRAW_INDEX_INDIRECT_COUNT_MULTI
|
||||
{
|
||||
&GnmCommandProxy::drawIndexIndirectCountMulti,
|
||||
nullptr,
|
||||
},
|
||||
|
||||
// IT_DUMP_CONST_RAM_OFFSET
|
||||
{ nullptr },
|
||||
// IT_LOAD_CONTEXT_REG_INDEX
|
||||
{ nullptr },
|
||||
// IT_SET_RESOURCES
|
||||
{ nullptr },
|
||||
// IT_MAP_PROCESS
|
||||
{ nullptr },
|
||||
// IT_MAP_QUEUES
|
||||
{ nullptr },
|
||||
// IT_UNMAP_QUEUES
|
||||
{ nullptr },
|
||||
// IT_QUERY_STATUS
|
||||
{ nullptr },
|
||||
// IT_RUN_LIST
|
||||
{ nullptr },
|
||||
// IT_MAP_PROCESS_VM
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_A7
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_A8
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_A9
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_AA
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_AB
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_AC
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_AD
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_AE
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_AF
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B0
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B1
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B2
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B3
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B4
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B5
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B6
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B7
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B8
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_B9
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_BA
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_BB
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_BC
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_BD
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_BE
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_BF
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C0
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C1
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C2
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C3
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C4
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C5
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C6
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C7
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C8
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_C9
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_CA
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_CB
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_CC
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_CD
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_CE
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_CF
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D0
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D1
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D2
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D3
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D4
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D5
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D6
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D7
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D8
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_D9
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_DA
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_DB
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_DC
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_DD
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_DE
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_DF
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E0
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E1
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E2
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E3
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E4
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E5
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E6
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E7
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E8
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_E9
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_EA
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_EB
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_EC
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_ED
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_EE
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_EF
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F0
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F1
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F2
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F3
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F4
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F5
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F6
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F7
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F8
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_F9
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_FA
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_FB
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_FC
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_FD
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_FE
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_FF
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_100
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_101
|
||||
{ nullptr },
|
||||
// IT_UNKNOWN_102
|
||||
{
|
||||
&GnmCommandProxy::insertNop2,
|
||||
nullptr,
|
||||
},
|
||||
} };
|
||||
} // namespace sce::Gnm
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
# used to debug in pycharm
|
||||
DEBUG = 0
|
||||
DEBUG = 1
|
||||
|
||||
|
||||
def connect_debug_server():
|
||||
|
@ -343,21 +343,21 @@ def write_function_array(table):
|
|||
|
||||
fout = open('PacketArray.cpp', 'w')
|
||||
max_code, max_sub_code = get_max_code(table)
|
||||
head = 'const std::array<const std::array<ProxyFunction, {}>, {}> m_proxyTable = {{ {{\n'.format(max_sub_code, max_code)
|
||||
head = 'const std::array<const std::array<ProxyFunction, {}>, {}> m_proxyTable = {{ {{\n'.format(max_sub_code + 1, max_code + 1)
|
||||
fout.write(head)
|
||||
last_opcode = -1
|
||||
for opcode, proxy_list in ordered_table.items():
|
||||
|
||||
for i in range(last_opcode + 1, opcode):
|
||||
fout.write('\t// {}\n'.format(get_code_name(i)))
|
||||
fout.write('\t{ 0 },\n')
|
||||
fout.write('\t{ nullptr },\n')
|
||||
last_opcode = opcode
|
||||
|
||||
fout.write('\t// {}\n'.format(get_code_name(opcode)))
|
||||
fout.write('\t{\n')
|
||||
for proxy_func in proxy_list:
|
||||
fout.write('\t\t&{},\n'.format(proxy_func))
|
||||
fout.write('\t\t(ProxyFunction)0,\n')
|
||||
fout.write('\t\tnullptr,\n')
|
||||
|
||||
fout.write('\t},\n')
|
||||
fout.write('\n')
|
||||
|
@ -393,6 +393,7 @@ def define_proxy_function(name, code):
|
|||
lines.append('\t' + 'uint32_t count = 0;\n')
|
||||
lines.append('\t' + 'if (false)\n')
|
||||
lines.append('\t' + '{\n')
|
||||
lines.append('\t\t' + 'LOG_SCE_TRACE("Gnm: {}");\n'.format(recover_gnm_name(name)))
|
||||
lines.append('\t\t' + '// m_cb->{}();\n'.format(recover_gnm_name(name)))
|
||||
lines.append('\t\t' + 'count = {};\n'.format(get_enum_name(name)))
|
||||
lines.append('\t' + '}\n')
|
||||
|
|
Loading…
Reference in a new issue