}
}
+
static image::Image *
getSubResourceImage(ID3D10Device *pDevice,
ID3D10Resource *pResource,
break;
case D3D10_SRV_DIMENSION_TEXTURE2D:
MipSlice = Desc.Texture2D.MostDetailedMip;
- MipSlice = 0;
break;
case D3D10_SRV_DIMENSION_TEXTURE2DARRAY:
MipSlice = Desc.Texture2DArray.MostDetailedMip;
break;
case D3D10_DSV_DIMENSION_TEXTURE2D:
MipSlice = Desc.Texture2D.MipSlice;
- MipSlice = 0;
break;
case D3D10_DSV_DIMENSION_TEXTURE2DARRAY:
MipSlice = Desc.Texture2DArray.MipSlice;
}
-void
-dumpTextures(JSONWriter &json, ID3D10Device *pDevice)
+static void
+dumpStageTextures(JSONWriter &json, ID3D10Device *pDevice, const char *stageName,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews)
{
- json.beginMember("textures");
- json.beginObject();
-
- ID3D10ShaderResourceView *pShaderResourceViews[D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT];
- pDevice->PSGetShaderResources(0, ARRAYSIZE(pShaderResourceViews), pShaderResourceViews);
-
- for (UINT i = 0; i < ARRAYSIZE(pShaderResourceViews); ++i) {
- if (!pShaderResourceViews[i]) {
+ for (UINT i = 0; i < NumViews; ++i) {
+ if (!ppShaderResourceViews[i]) {
continue;
}
image::Image *image;
- image = getShaderResourceViewImage(pDevice, pShaderResourceViews[i]);
+ image = getShaderResourceViewImage(pDevice, ppShaderResourceViews[i]);
if (image) {
char label[64];
- _snprintf(label, sizeof label, "PS_RESOURCE_%u", i);
+ _snprintf(label, sizeof label, "%s_RESOURCE_%u", stageName, i);
json.beginMember(label);
json.writeImage(image, "UNKNOWN");
- json.endMember(); // PS_RESOURCE_*
+ json.endMember(); // *_RESOURCE_*
}
- pShaderResourceViews[i]->Release();
+ ppShaderResourceViews[i]->Release();
}
+}
+
+
+void
+dumpTextures(JSONWriter &json, ID3D10Device *pDevice)
+{
+ json.beginMember("textures");
+ json.beginObject();
+
+ ID3D10ShaderResourceView *pShaderResourceViews[D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT];
+
+ pDevice->PSGetShaderResources(0, ARRAYSIZE(pShaderResourceViews), pShaderResourceViews);
+ dumpStageTextures(json, pDevice, "PS", ARRAYSIZE(pShaderResourceViews), pShaderResourceViews);
+
+ pDevice->VSGetShaderResources(0, ARRAYSIZE(pShaderResourceViews), pShaderResourceViews);
+ dumpStageTextures(json, pDevice, "VS", ARRAYSIZE(pShaderResourceViews), pShaderResourceViews);
+
+ pDevice->GSGetShaderResources(0, ARRAYSIZE(pShaderResourceViews), pShaderResourceViews);
+ dumpStageTextures(json, pDevice, "GS", ARRAYSIZE(pShaderResourceViews), pShaderResourceViews);
json.endObject();
json.endMember(); // textures