MCPcopy Create free account
hub / github.com/Inori/GPCS4 / main

Function main

Misc/PsslBcTest.cpp:1820–1891  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1818
1819
1820int main(void)
1821{
1822
1823 ShaderInfo shaderInfo;
1824 parseShader(&shaderInfo, s_vex_vv);
1825
1826 void *shaderBinary = malloc(shaderInfo.m_gpuShaderCodeSize);
1827 void *shaderHeader = malloc(shaderInfo.m_vsShader->computeSize());
1828
1829 memcpy(shaderBinary, shaderInfo.m_gpuShaderCode, shaderInfo.m_gpuShaderCodeSize);
1830 memcpy(shaderHeader, shaderInfo.m_vsShader, shaderInfo.m_vsShader->computeSize());
1831
1832 ShaderBinaryInfo* binInfo = findShaderBinInfo((uint8_t*)shaderBinary);
1833
1834 InputResourceOffsets table;
1835 generateInputResourceOffsetTable(&table, binInfo);
1836
1837 size_t codeLength = binInfo->m_length + sizeof(ShaderBinaryInfo);
1838
1839 VsShader* m_shader = static_cast<VsShader*>(shaderHeader);
1840 m_shader->patchShaderGpuAddress(shaderBinary);
1841
1842 VsShader* vertexShader = m_shader;
1843 FetchShaderBuildState fb = { 0 };
1844 generateVsFetchShaderBuildState(&fb, (const VsStageRegisters*)&vertexShader->m_vsStageRegisters, vertexShader->m_numInputSemantics, nullptr, 0, fb.m_vertexBaseUsgpr, fb.m_instanceBaseUsgpr);
1845
1846 const InputUsageSlot *inputUsageSlots = vertexShader->getInputUsageSlotTable();
1847 fb.m_numInputSemantics = vertexShader->m_numInputSemantics;
1848 fb.m_inputSemantics = vertexShader->getInputSemanticTable();
1849 fb.m_numInputUsageSlots = vertexShader->m_common.m_numInputUsageSlots;
1850 fb.m_inputUsageSlots = inputUsageSlots;
1851 fb.m_numElementsInRemapTable = 0;
1852 fb.m_semanticsRemapTable = 0;
1853
1854 uint32_t *fs = (uint32_t *)malloc(fb.m_fetchShaderBufferSize);
1855 generateFetchShader(fs, &fb);
1856
1857 std::ofstream fout("fetch_shader.bin");
1858 fout.write((char*)fs, fb.m_fetchShaderBufferSize);
1859 fout.close();
1860
1861 const InputUsageSlot* slot = m_shader->getInputUsageSlotTable();
1862 const VertexInputSemantic* inputSema = m_shader->getInputSemanticTable();
1863 const VertexExportSemantic* expSema = m_shader->getExportSemanticTable();
1864
1865 //
1866 //ShaderInfo psShaderInfo;
1867 //parseShader(&psShaderInfo, s_pix_p);
1868
1869 //void *psshaderBinary = malloc(psShaderInfo.m_gpuShaderCodeSize);
1870 //void *psshaderHeader = malloc(psShaderInfo.m_psShader->computeSize());
1871
1872 //memcpy(psshaderBinary, psShaderInfo.m_gpuS haderCode, psShaderInfo.m_gpuShaderCodeSize);
1873 //memcpy(psshaderHeader, psShaderInfo.m_psShader, psShaderInfo.m_psShader->computeSize());
1874
1875 //ShaderBinaryInfo* psbinInfo = findShaderBinInfo((uint8_t*)psshaderBinary);
1876
1877 //InputResourceOffsets pstable;

Callers

nothing calls this directly

Calls 12

parseShaderFunction · 0.85
findShaderBinInfoFunction · 0.85
generateFetchShaderFunction · 0.85
getInputSemanticTableMethod · 0.80
computeSizeMethod · 0.45
patchShaderGpuAddressMethod · 0.45
writeMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected