MCPcopy Create free account
hub / github.com/baldurk/renderdoc / QueueCalculateMathOp

Method QueueCalculateMathOp

renderdoc/driver/gl/gl_shaderdebug.cpp:1279–1373  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1277 }
1278
1279 virtual bool QueueCalculateMathOp(rdcspv::GLSLstd450 op,
1280 const rdcarray<ShaderVariable> &params) override
1281 {
1282 CHECK_DEVICE_THREAD();
1283 RDCASSERT(params.size() <= 3, params.size());
1284
1285 RDCASSERTEQUAL(params[0].type, VarType::Float);
1286
1287 GLMarkerRegion markerRegion("QueueCalculateMathOp");
1288
1289 m_pDriver->GetReplay()->UseReplayContext();
1290
1291 GLRenderState rs;
1292 rs.FetchState(m_pDriver);
1293
1294 RDCCOMPILE_ASSERT(SPV_OpSin == (int)rdcspv::GLSLstd450::Sin, "Shader defines are mismatched");
1295 RDCCOMPILE_ASSERT(SPV_OpCos == (int)rdcspv::GLSLstd450::Cos, "Shader defines are mismatched");
1296 RDCCOMPILE_ASSERT(SPV_OpTan == (int)rdcspv::GLSLstd450::Tan, "Shader defines are mismatched");
1297 RDCCOMPILE_ASSERT(SPV_OpAsin == (int)rdcspv::GLSLstd450::Asin, "Shader defines are mismatched");
1298 RDCCOMPILE_ASSERT(SPV_OpAcos == (int)rdcspv::GLSLstd450::Acos, "Shader defines are mismatched");
1299 RDCCOMPILE_ASSERT(SPV_OpAtan == (int)rdcspv::GLSLstd450::Atan, "Shader defines are mismatched");
1300 RDCCOMPILE_ASSERT(SPV_OpSinh == (int)rdcspv::GLSLstd450::Sinh, "Shader defines are mismatched");
1301 RDCCOMPILE_ASSERT(SPV_OpCosh == (int)rdcspv::GLSLstd450::Cosh, "Shader defines are mismatched");
1302 RDCCOMPILE_ASSERT(SPV_OpTanh == (int)rdcspv::GLSLstd450::Tanh, "Shader defines are mismatched");
1303 RDCCOMPILE_ASSERT(SPV_OpAsinh == (int)rdcspv::GLSLstd450::Asinh,
1304 "Shader defines are mismatched");
1305 RDCCOMPILE_ASSERT(SPV_OpAcosh == (int)rdcspv::GLSLstd450::Acosh,
1306 "Shader defines are mismatched");
1307 RDCCOMPILE_ASSERT(SPV_OpAtanh == (int)rdcspv::GLSLstd450::Atanh,
1308 "Shader defines are mismatched");
1309 RDCCOMPILE_ASSERT(SPV_OpExp == (int)rdcspv::GLSLstd450::Exp, "Shader defines are mismatched");
1310 RDCCOMPILE_ASSERT(SPV_OpLog == (int)rdcspv::GLSLstd450::Log, "Shader defines are mismatched");
1311 RDCCOMPILE_ASSERT(SPV_OpExp2 == (int)rdcspv::GLSLstd450::Exp2, "Shader defines are mismatched");
1312 RDCCOMPILE_ASSERT(SPV_OpLog2 == (int)rdcspv::GLSLstd450::Log2, "Shader defines are mismatched");
1313 RDCCOMPILE_ASSERT(SPV_OpSqrt == (int)rdcspv::GLSLstd450::Sqrt, "Shader defines are mismatched");
1314 RDCCOMPILE_ASSERT(SPV_OpInverseSqrt == (int)rdcspv::GLSLstd450::InverseSqrt,
1315 "Shader defines are mismatched");
1316 RDCCOMPILE_ASSERT(SPV_OpNormalize == (int)rdcspv::GLSLstd450::Normalize,
1317 "Shader defines are mismatched");
1318 RDCCOMPILE_ASSERT(SPV_OpAtan2 == (int)rdcspv::GLSLstd450::Atan2,
1319 "Shader defines are mismatched");
1320 RDCCOMPILE_ASSERT(SPV_OpPow == (int)rdcspv::GLSLstd450::Pow, "Shader defines are mismatched");
1321 RDCCOMPILE_ASSERT(SPV_OpFma == (int)rdcspv::GLSLstd450::Fma, "Shader defines are mismatched");
1322 RDCCOMPILE_ASSERT(SPV_OpLength == (int)rdcspv::GLSLstd450::Length,
1323 "Shader defines are mismatched");
1324 RDCCOMPILE_ASSERT(SPV_OpDistance == (int)rdcspv::GLSLstd450::Distance,
1325 "Shader defines are mismatched");
1326 RDCCOMPILE_ASSERT(SPV_OpRefract == (int)rdcspv::GLSLstd450::Refract,
1327 "Shader defines are mismatched");
1328
1329 GLuint mathProg = m_pDriver->GetReplay()->GetShaderDebugMathProg();
1330
1331 GL.glUniform1i(GL.glGetUniformLocation(mathProg, "outputs"), 0);
1332
1333 if(m_MathOffset >= m_MathBufferSize || m_MathBuffer == 0)
1334 {
1335 m_MathBufferSize = m_MathBufferSize * 2 + 1024 * mathOpResultByteSize;
1336

Callers 1

Calls 15

UseReplayContextMethod · 0.80
FetchStateMethod · 0.80
glNamedBufferDataEXTMethod · 0.80
sizeMethod · 0.45
GetReplayMethod · 0.45
glUniform1iMethod · 0.45
glGetUniformLocationMethod · 0.45
glGenBuffersMethod · 0.45
glBindBufferMethod · 0.45
glBindBufferRangeMethod · 0.45

Tested by

no test coverage detected