Не удается установить две текстуры в шейдер в dx11

#c #hlsl

#c #hlsl

Вопрос:

Я хочу установить две текстуры для шейдера, но когда я пробую вторую, я получаю цвет первой. Текстуры имеют разный размер, поэтому я не могу использовать array. Что может быть не так?

     //-- fill and set interface dynamic texture

    D3D11_MAPPED_SUBRESOURCE msr;
    devcon->Map(Interface_DynamicTexture, 0, D3D11_MAP_WRITE_DISCARD, 0, amp;msr);
    memcpy(msr.pData, ibb, ibw*ibh*4);
    devcon->Unmap(Interface_DynamicTexture, 0);

    devcon->PSSetShaderResources(0, 1, amp;Interface_DynamicTexture_SRV);

    //-- set 3d render target as textures

    devcon->PSSetShaderResources(1, 1, amp;Render_SRV);

    //-- render to back buffer

    devcon->VSSetShader(PostProcess_VertexShader, 0, 0);
    devcon->PSSetShader(PostProcess_PixelShader, 0, 0);

    devcon->IASetInputLayout(ScreenPlane_Layout);
    UINT stride = sizeof(ScreenPlane_Vertex);
    UINT offset = 0;
    devcon->IASetVertexBuffers(0, 1, amp;ScreenPlane_Buffer, amp;stride, amp;offset);
    devcon->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST);

    devcon->OMSetBlendState(Interface_BlendState, 0, 0xffffffff);
    devcon->OMSetRenderTargets(1, amp;BackBuffer_Target, NULL);
    devcon->ClearRenderTargetView(BackBuffer_Target, D3DXCOLOR(0.0f, 0.0f, 0.4f, 1.0f));
    devcon->Draw(6, 0);

    swapchain->Present(options.graphics.vsync, 0);
  
 Texture2D interf;
Texture2D color;

SamplerState SampleType
{
    Filter = MIN_MAG_MIP_LINEAR;
    AddressU = Wrap;
    AddressV = Wrap;
};

struct IN
{
    float4 unsigned_short2: SV_POSITION;
    float2 tex: TEXCOORD0;
};

float4 main(IN i): SV_TARGET
{
    return color.Sample(SampleType, i.tex);
}
  

Я пытался: register(tXX); но это не сработало.