mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Don't consider interim position builtins to be projected/rasterized
* Even if the VS outputs to the position builtin, if there's a tessellation or geometry shader consuming it that doesn't mean much.
This commit is contained in:
@@ -2610,6 +2610,11 @@ void BufferViewer::UI_CalculateMeshFormats()
|
||||
m_PostVSPosition.vertexByteOffset += vsoutConfig.columns[elIdx].offset;
|
||||
m_PostVSPosition.unproject = vsoutConfig.columns[elIdx].systemValue == ShaderBuiltin::Position;
|
||||
|
||||
// if geometry/tessellation is enabled, don't unproject VS output data
|
||||
if(m_Ctx.CurPipelineState().GetShader(ShaderStage::Tess_Eval) != ResourceId() ||
|
||||
m_Ctx.CurPipelineState().GetShader(ShaderStage::Geometry) != ResourceId())
|
||||
m_PostVSPosition.unproject = false;
|
||||
|
||||
elIdx = m_ModelVSOut->secondaryColumn();
|
||||
|
||||
if(elIdx >= 0 && elIdx < vsoutConfig.columns.count())
|
||||
@@ -2965,6 +2970,12 @@ bool BufferViewer::isCurrentRasterOut()
|
||||
BufferItemModel *model = currentBufferModel();
|
||||
int stage = currentStageIndex();
|
||||
|
||||
// if geometry/tessellation is enabled, only the GS out stage is rasterized output
|
||||
if((m_Ctx.CurPipelineState().GetShader(ShaderStage::Tess_Eval) != ResourceId() ||
|
||||
m_Ctx.CurPipelineState().GetShader(ShaderStage::Geometry) != ResourceId()) &&
|
||||
m_CurStage != MeshDataStage::GSOut)
|
||||
return false;
|
||||
|
||||
if(model)
|
||||
{
|
||||
int posEl = model->posColumn();
|
||||
|
||||
Reference in New Issue
Block a user