MCPcopy Create free account
hub / github.com/carbonengine/trinity / RunComputeShader

Method RunComputeShader

trinity/Tr2Renderer.cpp:848–882  ·  view source on GitHub ↗

-------------------------------------------------------------------------------------- Description: Execute compute shaders in all passes of the specified effect. The function will unset bound UAVs after each pass. Arguments: effect - Effect containing compute shaders groupDim# - group grid sizes renderContext - current render context Return Value: true On success false On failure ----------------

Source from the content-addressed store, hash-verified

846// false On failure
847// --------------------------------------------------------------------------------------
848bool Tr2Renderer::RunComputeShader( Tr2Material* effect,
849 unsigned groupDimX,
850 unsigned groupDimY,
851 unsigned groupDimZ,
852 Tr2RenderContext& renderContext )
853{
854 if( !effect )
855 {
856 return false;
857 }
858 auto shader = effect->GetShaderStateInterface();
859 if( !shader )
860 {
861 return false;
862 }
863 bool result = false;
864 auto& desc = shader->GetEffectDescription();
865 if( desc.techniques.empty() )
866 {
867 return false;
868 }
869 auto& technique = desc.techniques[0];
870 for( unsigned i = 0; i < technique.passes.size(); ++i )
871 {
872 auto& stage = technique.passes[i].stageInputs[COMPUTE_SHADER];
873 if( stage.m_exists )
874 {
875 shader->ApplyAllStateForPass( 0, i, renderContext );
876 effect->ApplyMaterialDataForPass( 0, i, renderContext );
877 CR_RETURN_VAL( renderContext.RunComputeShader( groupDimX, groupDimY, groupDimZ ), false );
878 result = true;
879 }
880 }
881 return result;
882}
883
884// --------------------------------------------------------------------------------------
885bool Tr2Renderer::RunComputeShader(

Callers 1

TransformMeshesMethod · 0.45

Calls 6

emptyMethod · 0.80
sizeMethod · 0.80
ApplyAllStateForPassMethod · 0.80
GetTechniqueIndexMethod · 0.80

Tested by

no test coverage detected