mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 13:00:32 +00:00
Rename 'show disabled' button to 'show unused' as it is clearer
* Bindings that are unused aren't disabled - they may in fact be explicitly enabled - but they are unused by the pipeline which is why they're hidden.
This commit is contained in:
@@ -159,7 +159,7 @@ The Pipeline State window is perhaps the most detailed but also the simplest to
|
||||
|
||||
.. |go_arrow| image:: ../imgs/icons/action_hover.png
|
||||
|
||||
By default the pipeline will not contain empty or unused entries - i.e. if a shader only reads from resources 0 and 1, even if something is bound to slot 2 it will not be displayed. Likewise say slots 3-128 are empty - they will also not be displayed. This behaviour can be modified by the :guilabel:`Show Disabled Items` and :guilabel:`Show Empty Items` toggles on the toolbar. Show Disabled will show slot 2 even if the shader does not read from it. Show Empty will show slots 3-128. This behaviour varies significantly by API since the shader binding model is often quite different.
|
||||
By default the pipeline will not contain empty or unused entries - i.e. if a shader only reads from resources 0 and 1, even if something is bound to slot 2 it will not be displayed. Likewise say slots 3-128 are empty - they will also not be displayed. This behaviour can be modified by the :guilabel:`Show Unused Items` and :guilabel:`Show Empty Items` toggles on the toolbar. Show Unused will show slot 2 even if the shader does not read from it. Show Empty will show slots 3-128. This behaviour varies significantly by API since the shader binding model is often quite different.
|
||||
|
||||
One important thing to note is that most things in the sections for each pipeline stage can be expanded to view in more detail. Look for the Go Icon (|go_arrow|) to indicate that a more detailed view is available. Typically this will mean for shaders the shader source/disassembly will be opened, for texture-type resources the texture viewer will open a new tab for that resource, and for buffers it will open either the Mesh Viewer window, a raw view of that buffer, or a popup with the constant contents - depending on where the buffer is bound.
|
||||
|
||||
|
||||
@@ -30,9 +30,9 @@ Any resources that are bound to the pipeline can be opened in more detailed view
|
||||
.. |page_white_delete| image:: ../imgs/icons/page_white_delete.png
|
||||
.. |page_white_database| image:: ../imgs/icons/page_white_database.png
|
||||
|
||||
The pipeline view attempts to only show what is relevant, and not all possible stateful data. To do this (when available) it uses shader reflection data to only display slots which are actually in use by the shaders, and omit any that are unused. This can be overridden with the Show Disabled Items |page_white_delete| button.
|
||||
The pipeline view attempts to only show what is relevant, and not all possible stateful data. To do this (when available) it uses shader reflection data to only display slots which are actually in use by the shaders, and omit any that are unused. This can be overridden with the Show Unused Items |page_white_delete| button.
|
||||
|
||||
On some APIs like Vulkan it may be common to use 'bindless' approaches where a large number of resources are bound and only a small number are accessed at any time. In these cases RenderDoc uses dynamic feedback to try to determine the set of resources accessed and only displays them. This can similarly be overridden with the Show Disabled Items |page_white_delete| button.
|
||||
On some APIs like Vulkan it may be common to use 'bindless' approaches where a large number of resources are bound and only a small number are accessed at any time. In these cases RenderDoc uses dynamic feedback to try to determine the set of resources accessed and only displays them. This can similarly be overridden with the Show Unused Items |page_white_delete| button.
|
||||
|
||||
Likewise it will omit any slots which are completely empty (and also unused), and this behaviour can be overridden with the Show Empty Items |page_white_database| button.
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ Each thumbnail has a context menu available via right click. This menu allows yo
|
||||
|
||||
Thumbnail Menu: Thumbnail context menu with several options.
|
||||
|
||||
There are also two general options - show disabled and show empty. These behave the same as the options in the :doc:`pipeline_state` window - temporarily overriding the default behaviour in RenderDoc to only show texture slots that are referenced in the shader.
|
||||
There are also two general options - show unused and show empty. These behave the same as the options in the :doc:`pipeline_state` window - temporarily overriding the default behaviour in RenderDoc to only show texture slots that are referenced in the shader.
|
||||
|
||||
Pixel Context Display
|
||||
---------------------
|
||||
|
||||
@@ -467,7 +467,7 @@ void D3D11PipelineStateViewer::OnEventChanged(uint32_t eventId)
|
||||
setState();
|
||||
}
|
||||
|
||||
void D3D11PipelineStateViewer::on_showDisabled_toggled(bool checked)
|
||||
void D3D11PipelineStateViewer::on_showUnused_toggled(bool checked)
|
||||
{
|
||||
setState();
|
||||
}
|
||||
@@ -757,15 +757,15 @@ void D3D11PipelineStateViewer::addResourceRow(const D3D11ViewTag &view,
|
||||
|
||||
bool D3D11PipelineStateViewer::showNode(bool usedSlot, bool filledSlot)
|
||||
{
|
||||
const bool showDisabled = ui->showDisabled->isChecked();
|
||||
const bool showUnused = ui->showUnused->isChecked();
|
||||
const bool showEmpty = ui->showEmpty->isChecked();
|
||||
|
||||
// show if it's referenced by the shader - regardless of empty or not
|
||||
if(usedSlot)
|
||||
return true;
|
||||
|
||||
// it's bound, but not referenced, and we have "show disabled"
|
||||
if(showDisabled && !usedSlot && filledSlot)
|
||||
// it's bound, but not referenced, and we have "show unused"
|
||||
if(showUnused && !usedSlot && filledSlot)
|
||||
return true;
|
||||
|
||||
// it's empty, and we have "show empty"
|
||||
@@ -1369,7 +1369,7 @@ void D3D11PipelineStateViewer::setState()
|
||||
|
||||
if(state.inputAssembly.indexBuffer.resourceId != ResourceId())
|
||||
{
|
||||
if(ibufferUsed || ui->showDisabled->isChecked())
|
||||
if(ibufferUsed || ui->showUnused->isChecked())
|
||||
{
|
||||
uint64_t length = 0;
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
|
||||
private slots:
|
||||
// automatic slots
|
||||
void on_showDisabled_toggled(bool checked);
|
||||
void on_showUnused_toggled(bool checked);
|
||||
void on_showEmpty_toggled(bool checked);
|
||||
void on_exportHTML_clicked();
|
||||
void on_meshView_clicked();
|
||||
|
||||
@@ -68,12 +68,12 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="showDisabled">
|
||||
<widget class="QToolButton" name="showUnused">
|
||||
<property name="toolTip">
|
||||
<string>Show Disabled Items</string>
|
||||
<string>Show items that are bound but not currently used by the pipeline.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Disabled Items</string>
|
||||
<string>Show Unused Items</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../Resources/resources.qrc">
|
||||
@@ -93,7 +93,7 @@
|
||||
<item>
|
||||
<widget class="QToolButton" name="showEmpty">
|
||||
<property name="toolTip">
|
||||
<string>Show Empty Items</string>
|
||||
<string>Show pipeline bindings which are completely empty and have nothing bound</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Empty Items</string>
|
||||
|
||||
@@ -488,7 +488,7 @@ void D3D12PipelineStateViewer::OnEventChanged(uint32_t eventId)
|
||||
setState();
|
||||
}
|
||||
|
||||
void D3D12PipelineStateViewer::on_showDisabled_toggled(bool checked)
|
||||
void D3D12PipelineStateViewer::on_showUnused_toggled(bool checked)
|
||||
{
|
||||
setState();
|
||||
}
|
||||
@@ -796,15 +796,15 @@ void D3D12PipelineStateViewer::addResourceRow(const D3D12ViewTag &view,
|
||||
|
||||
bool D3D12PipelineStateViewer::showNode(bool usedSlot, bool filledSlot)
|
||||
{
|
||||
const bool showDisabled = ui->showDisabled->isChecked();
|
||||
const bool showUnused = ui->showUnused->isChecked();
|
||||
const bool showEmpty = ui->showEmpty->isChecked();
|
||||
|
||||
// show if it's referenced by the shader - regardless of empty or not
|
||||
if(usedSlot)
|
||||
return true;
|
||||
|
||||
// it's bound, but not referenced, and we have "show disabled"
|
||||
if(showDisabled && !usedSlot && filledSlot)
|
||||
// it's bound, but not referenced, and we have "show unused"
|
||||
if(showUnused && !usedSlot && filledSlot)
|
||||
return true;
|
||||
|
||||
// it's empty, and we have "show empty"
|
||||
@@ -1335,7 +1335,7 @@ void D3D12PipelineStateViewer::setState()
|
||||
|
||||
if(state.inputAssembly.indexBuffer.resourceId != ResourceId())
|
||||
{
|
||||
if(ibufferUsed || ui->showDisabled->isChecked())
|
||||
if(ibufferUsed || ui->showUnused->isChecked())
|
||||
{
|
||||
uint64_t length = 0;
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ public:
|
||||
|
||||
private slots:
|
||||
// automatic slots
|
||||
void on_showDisabled_toggled(bool checked);
|
||||
void on_showUnused_toggled(bool checked);
|
||||
void on_showEmpty_toggled(bool checked);
|
||||
void on_exportHTML_clicked();
|
||||
void on_meshView_clicked();
|
||||
|
||||
@@ -68,12 +68,12 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="showDisabled">
|
||||
<widget class="QToolButton" name="showUnused">
|
||||
<property name="toolTip">
|
||||
<string>Show Disabled Items</string>
|
||||
<string>Show items that are bound but not currently used by the pipeline.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Disabled Items</string>
|
||||
<string>Show Unused Items</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../Resources/resources.qrc">
|
||||
@@ -93,7 +93,7 @@
|
||||
<item>
|
||||
<widget class="QToolButton" name="showEmpty">
|
||||
<property name="toolTip">
|
||||
<string>Show Empty Items</string>
|
||||
<string>Show pipeline bindings which are completely empty and have nothing bound</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Empty Items</string>
|
||||
|
||||
@@ -449,7 +449,7 @@ void GLPipelineStateViewer::OnEventChanged(uint32_t eventId)
|
||||
setState();
|
||||
}
|
||||
|
||||
void GLPipelineStateViewer::on_showDisabled_toggled(bool checked)
|
||||
void GLPipelineStateViewer::on_showUnused_toggled(bool checked)
|
||||
{
|
||||
setState();
|
||||
}
|
||||
@@ -494,15 +494,15 @@ void GLPipelineStateViewer::setViewDetails(RDTreeWidgetItem *node, TextureDescri
|
||||
|
||||
bool GLPipelineStateViewer::showNode(bool usedSlot, bool filledSlot)
|
||||
{
|
||||
const bool showDisabled = ui->showDisabled->isChecked();
|
||||
const bool showUnused = ui->showUnused->isChecked();
|
||||
const bool showEmpty = ui->showEmpty->isChecked();
|
||||
|
||||
// show if it's referenced by the shader - regardless of empty or not
|
||||
if(usedSlot)
|
||||
return true;
|
||||
|
||||
// it's bound, but not referenced, and we have "show disabled"
|
||||
if(showDisabled && !usedSlot && filledSlot)
|
||||
// it's bound, but not referenced, and we have "show unused"
|
||||
if(showUnused && !usedSlot && filledSlot)
|
||||
return true;
|
||||
|
||||
// it's empty, and we have "show empty"
|
||||
@@ -1216,7 +1216,7 @@ void GLPipelineStateViewer::setState()
|
||||
const GLPipe::State &state = *m_Ctx.CurGLPipelineState();
|
||||
const DrawcallDescription *draw = m_Ctx.CurDrawcall();
|
||||
|
||||
bool showDisabled = ui->showDisabled->isChecked();
|
||||
bool showUnused = ui->showUnused->isChecked();
|
||||
bool showEmpty = ui->showEmpty->isChecked();
|
||||
|
||||
const QPixmap &tick = Pixmaps::tick(this);
|
||||
@@ -1327,7 +1327,7 @@ void GLPipelineStateViewer::setState()
|
||||
|
||||
if(state.vertexInput.indexBuffer != ResourceId())
|
||||
{
|
||||
if(ibufferUsed || showDisabled)
|
||||
if(ibufferUsed || showUnused)
|
||||
{
|
||||
uint64_t length = 1;
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
|
||||
private slots:
|
||||
// automatic slots
|
||||
void on_showDisabled_toggled(bool checked);
|
||||
void on_showUnused_toggled(bool checked);
|
||||
void on_showEmpty_toggled(bool checked);
|
||||
void on_exportHTML_clicked();
|
||||
void on_meshView_clicked();
|
||||
|
||||
@@ -68,12 +68,12 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="showDisabled">
|
||||
<widget class="QToolButton" name="showUnused">
|
||||
<property name="toolTip">
|
||||
<string>Show Disabled Items</string>
|
||||
<string>Show items that are bound but not currently used by the pipeline.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Disabled Items</string>
|
||||
<string>Show Unused Items</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../Resources/resources.qrc">
|
||||
@@ -93,7 +93,7 @@
|
||||
<item>
|
||||
<widget class="QToolButton" name="showEmpty">
|
||||
<property name="toolTip">
|
||||
<string>Show Empty Items</string>
|
||||
<string>Show pipeline bindings which are completely empty and have nothing bound</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Empty Items</string>
|
||||
|
||||
@@ -419,7 +419,7 @@ void VulkanPipelineStateViewer::OnEventChanged(uint32_t eventId)
|
||||
setState();
|
||||
}
|
||||
|
||||
void VulkanPipelineStateViewer::on_showDisabled_toggled(bool checked)
|
||||
void VulkanPipelineStateViewer::on_showUnused_toggled(bool checked)
|
||||
{
|
||||
setState();
|
||||
}
|
||||
@@ -561,15 +561,15 @@ void VulkanPipelineStateViewer::setViewDetails(RDTreeWidgetItem *node, const bin
|
||||
|
||||
bool VulkanPipelineStateViewer::showNode(bool usedSlot, bool filledSlot)
|
||||
{
|
||||
const bool showDisabled = ui->showDisabled->isChecked();
|
||||
const bool showUnused = ui->showUnused->isChecked();
|
||||
const bool showEmpty = ui->showEmpty->isChecked();
|
||||
|
||||
// show if it's referenced by the shader - regardless of empty or not
|
||||
if(usedSlot)
|
||||
return true;
|
||||
|
||||
// it's bound, but not referenced, and we have "show disabled"
|
||||
if(showDisabled && !usedSlot && filledSlot)
|
||||
// it's bound, but not referenced, and we have "show unused"
|
||||
if(showUnused && !usedSlot && filledSlot)
|
||||
return true;
|
||||
|
||||
// it's empty, and we have "show empty"
|
||||
@@ -1687,7 +1687,7 @@ void VulkanPipelineStateViewer::setState()
|
||||
const VKPipe::State &state = *m_Ctx.CurVulkanPipelineState();
|
||||
const DrawcallDescription *draw = m_Ctx.CurDrawcall();
|
||||
|
||||
bool showDisabled = ui->showDisabled->isChecked();
|
||||
bool showUnused = ui->showUnused->isChecked();
|
||||
bool showEmpty = ui->showEmpty->isChecked();
|
||||
|
||||
const QPixmap &tick = Pixmaps::tick(this);
|
||||
@@ -1774,7 +1774,7 @@ void VulkanPipelineStateViewer::setState()
|
||||
|
||||
if(state.inputAssembly.indexBuffer.resourceId != ResourceId())
|
||||
{
|
||||
if(ibufferUsed || showDisabled)
|
||||
if(ibufferUsed || showUnused)
|
||||
{
|
||||
uint64_t length = 1;
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
|
||||
private slots:
|
||||
// automatic slots
|
||||
void on_showDisabled_toggled(bool checked);
|
||||
void on_showUnused_toggled(bool checked);
|
||||
void on_showEmpty_toggled(bool checked);
|
||||
void on_exportHTML_clicked();
|
||||
void on_meshView_clicked();
|
||||
|
||||
@@ -68,12 +68,12 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="showDisabled">
|
||||
<widget class="QToolButton" name="showUnused">
|
||||
<property name="toolTip">
|
||||
<string>Show Disabled Items</string>
|
||||
<string>Show items that are bound but not currently used by the pipeline.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Disabled Items</string>
|
||||
<string>Show Unused Items</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../Resources/resources.qrc">
|
||||
@@ -93,7 +93,7 @@
|
||||
<item>
|
||||
<widget class="QToolButton" name="showEmpty">
|
||||
<property name="toolTip">
|
||||
<string>Show Empty Items</string>
|
||||
<string>Show pipeline bindings which are completely empty and have nothing bound</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Empty Items</string>
|
||||
|
||||
@@ -1932,9 +1932,9 @@ void TextureViewer::texContextItem_triggered()
|
||||
}
|
||||
}
|
||||
|
||||
void TextureViewer::showDisabled_triggered()
|
||||
void TextureViewer::showUnused_triggered()
|
||||
{
|
||||
m_ShowDisabled = !m_ShowDisabled;
|
||||
m_ShowUnused = !m_ShowUnused;
|
||||
|
||||
if(m_Ctx.IsCaptureLoaded())
|
||||
m_Ctx.RefreshStatus();
|
||||
@@ -1972,7 +1972,7 @@ void TextureViewer::OpenResourceContextMenu(ResourceId id, bool input,
|
||||
{
|
||||
QMenu contextMenu(this);
|
||||
|
||||
QAction showDisabled(tr("Show Disabled"), this);
|
||||
QAction showUnused(tr("Show Unused"), this);
|
||||
QAction showEmpty(tr("Show Empty"), this);
|
||||
QAction openLockedTab(tr("Open new Locked Tab"), this);
|
||||
QAction openResourceInspector(tr("Open in Resource Inspector"), this);
|
||||
@@ -1982,13 +1982,13 @@ void TextureViewer::OpenResourceContextMenu(ResourceId id, bool input,
|
||||
openLockedTab.setIcon(Icons::action_hover());
|
||||
openResourceInspector.setIcon(Icons::link());
|
||||
|
||||
showDisabled.setChecked(m_ShowDisabled);
|
||||
showDisabled.setChecked(m_ShowEmpty);
|
||||
showUnused.setChecked(m_ShowUnused);
|
||||
showUnused.setChecked(m_ShowEmpty);
|
||||
|
||||
contextMenu.addAction(&showDisabled);
|
||||
contextMenu.addAction(&showUnused);
|
||||
contextMenu.addAction(&showEmpty);
|
||||
|
||||
QObject::connect(&showDisabled, &QAction::triggered, this, &TextureViewer::showDisabled_triggered);
|
||||
QObject::connect(&showUnused, &QAction::triggered, this, &TextureViewer::showUnused_triggered);
|
||||
QObject::connect(&showEmpty, &QAction::triggered, this, &TextureViewer::showEmpty_triggered);
|
||||
|
||||
if(m_Ctx.CurPipelineState().SupportsBarriers())
|
||||
@@ -2168,7 +2168,7 @@ void TextureViewer::InitStageResourcePreviews(ShaderStage stage,
|
||||
bool show = used;
|
||||
|
||||
// it's bound, but not referenced, and we have "show disabled"
|
||||
show = show || (m_ShowDisabled && !used && id != ResourceId());
|
||||
show = show || (m_ShowUnused && !used && id != ResourceId());
|
||||
|
||||
// it's empty, and we have "show empty"
|
||||
show = show || (m_ShowEmpty && id == ResourceId());
|
||||
|
||||
@@ -194,7 +194,7 @@ private slots:
|
||||
void thumb_clicked(QMouseEvent *);
|
||||
void thumb_doubleClicked(QMouseEvent *);
|
||||
void texContextItem_triggered();
|
||||
void showDisabled_triggered();
|
||||
void showUnused_triggered();
|
||||
void showEmpty_triggered();
|
||||
|
||||
void zoomOption_returnPressed();
|
||||
@@ -305,7 +305,7 @@ private:
|
||||
int m_PrevHighestMip = -1;
|
||||
|
||||
bool m_ShowEmpty = false;
|
||||
bool m_ShowDisabled = false;
|
||||
bool m_ShowUnused = false;
|
||||
|
||||
bool m_Visualise = false;
|
||||
bool m_NoRangePaint = false;
|
||||
|
||||
Reference in New Issue
Block a user