Ошибка 0x80070057 в зависимости от файла, содержащего код вершинного шейдера

Это мой первый вопрос, пожалуйста, пощади меня. В настоящее время я работаю со следующими битами кода шейдера в Pixel Shader:

struct PixelShaderInput
{
        float4 pos : SV_POSITION;
};

float4 main(PixelShaderInput input) : SV_TARGET
{
    return float4(0.1f, 0.1f, 0.1f, 1.0f);
}

В вершинном шейдере:

cbuffer ModelViewProjectionConstantBuffer : register(b0)
{
    matrix model;
    matrix view;
    matrix projection;
};

struct VertexShaderInput
{
    float3 pos : POSITION;
};

struct PixelShaderInput
{
    float4 pos : SV_POSITION;
};

PixelShaderInput main(VertexShaderInput input)
{
    PixelShaderInput output;
    float4 pos = float4(input.pos, 1.0f);

    pos = mul(pos, model);
    pos = mul(pos, view);
    pos = mul(pos, projection);
    output.pos = pos;

    return output;
}

Теперь начинается странная часть. На моей виртуальной машине без поддержки DirectX11 эта версия кода работает, если я скопирую приведенный выше код шейдера в два файла, созданных скелетом проекта:

void SUS3DApp1Main::SUSCreateDeviceResources()
{
    //auto loadVSTask = DX::ReadDataAsync(L"SUSPixelShader.cso");
    //auto loadPSTask = DX::ReadDataAsync(L"SUSVertexShader.cso");

    // Load shaders asynchronously.
    //this version works
    auto loadVSTask = DX::ReadDataAsync(L"SampleVertexShader.cso");
    auto loadPSTask = DX::ReadDataAsync(L"SamplePixelShader.cso");

Пока этого нет

void SUS3DApp1Main::SUSCreateDeviceResources()
{
    auto loadVSTask = DX::ReadDataAsync(L"SUSPixelShader.cso");
    auto loadPSTask = DX::ReadDataAsync(L"SUSVertexShader.cso");

Я проверил и перепроверил параметры компиляции в Visual Studio, но они выглядят одинаково для меня. Кто-нибудь из вас знает, чем отличаются "специальные" файлы, созданные при создании скелета проекта?

0 ответов

Другие вопросы по тегам