X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;ds=sidebyside;f=retrace%2Fd3d10state_images.cpp;h=d79c2493942dfb496672ba8cecfffbf5ea3db496;hb=0ae84f58eee1c239d5bc2cc148a1d007b328d2e1;hp=1cab792a2062beb7d9ca521c149fe80e0c9e6cb4;hpb=ea39b2cd2442e66eb5f65055a4042bacfc3ec1ca;p=apitrace diff --git a/retrace/d3d10state_images.cpp b/retrace/d3d10state_images.cpp index 1cab792..d79c249 100644 --- a/retrace/d3d10state_images.cpp +++ b/retrace/d3d10state_images.cpp @@ -261,7 +261,6 @@ getShaderResourceViewImage(ID3D10Device *pDevice, break; case D3D10_SRV_DIMENSION_TEXTURE2D: MipSlice = Desc.Texture2D.MostDetailedMip; - MipSlice = 0; break; case D3D10_SRV_DIMENSION_TEXTURE2DARRAY: MipSlice = Desc.Texture2DArray.MostDetailedMip; @@ -367,7 +366,6 @@ getDepthStencilViewImage(ID3D10Device *pDevice, break; case D3D10_DSV_DIMENSION_TEXTURE2D: MipSlice = Desc.Texture2D.MipSlice; - MipSlice = 0; break; case D3D10_DSV_DIMENSION_TEXTURE2DARRAY: MipSlice = Desc.Texture2DArray.MipSlice; @@ -388,32 +386,47 @@ getDepthStencilViewImage(ID3D10Device *pDevice, } -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