Size: a a a

Microsoft Developer Community Chat

2018 March 29

EK

Eugeny Klokov in Microsoft Developer Community Chat
ну хотя бы смарт указатели завезли
источник

G

Gopneg in Microsoft Developer Community Chat
источник

G

Gopneg in Microsoft Developer Community Chat
какой-то треш в аутпуте %)
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
Eugeny Klokov
Майрософт девелоперы, вот вам вопрос для разминки
есть код
const std::string shaderSource =
 "struct PixelShaderInput\n"
 "{\n"
 "  float3 color : COLOR0;\n"
 "};\n\n"
 "float4 main(PixelShaderInput input) : SV_TARGET\n"
 "{\n"
 "  return float4(1.0f, 0.0f, 0.0f, 1.0f);\n"
 "};";

   
ComPtr<ID3DBlob> pShaderCode = NULL;
ComPtr<ID3DBlob> errorBlob = NULL;

HRESULT hr = D3DCompile(
 shaderSource.c_str(),
 shaderSource.length(),
 NULL,
 NULL,
 NULL,
 "main",
 "ps_5_0",
 NULL,
 NULL,
 &pShaderCode,
 &errorBlob);


В результате я получаю hr == E_INVALIDARG
Если я допущу ошибку в коде шейдера, то на выходе будет именно эта ошибка.
Не могу понять в чем дело.
в допускании ошибки ?:)
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
ну так не допускай ))
источник

EK

Eugeny Klokov in Microsoft Developer Community Chat
Arthur Irgashev
ну так не допускай ))
не, там вот в чем дело. пишу шейдер, делаю прекомпиляцию в cso все ок.
пытаюсь его же компилировать через D3DCompile получаю E_INVALIDARG

для поверки (пушо дебажить cx/c++ runtime это такое себе) допускаю в шейдере ошибку, что бы проверить, что по крайней мере текст шейдера компилятор скушал. И да ошибка уже не E_INVALIDARG.

Но какая. errorBlob не тянет весь стек трейс.
источник

AM

Anatoly Manzhugin in Microsoft Developer Community Chat
Eugeny Klokov
Майрософт девелоперы, вот вам вопрос для разминки
есть код
const std::string shaderSource =
 "struct PixelShaderInput\n"
 "{\n"
 "  float3 color : COLOR0;\n"
 "};\n\n"
 "float4 main(PixelShaderInput input) : SV_TARGET\n"
 "{\n"
 "  return float4(1.0f, 0.0f, 0.0f, 1.0f);\n"
 "};";

   
ComPtr<ID3DBlob> pShaderCode = NULL;
ComPtr<ID3DBlob> errorBlob = NULL;

HRESULT hr = D3DCompile(
 shaderSource.c_str(),
 shaderSource.length(),
 NULL,
 NULL,
 NULL,
 "main",
 "ps_5_0",
 NULL,
 NULL,
 &pShaderCode,
 &errorBlob);


В результате я получаю hr == E_INVALIDARG
Если я допущу ошибку в коде шейдера, то на выходе будет именно эта ошибка.
Не могу понять в чем дело.
ну видимо ты какой-то аргумент передал неправильно. А что в ppErrorMsgs  ? Есть значение? Там можно поидее текст ошибки достать
источник

EK

Eugeny Klokov in Microsoft Developer Community Chat
Anatoly Manzhugin
ну видимо ты какой-то аргумент передал неправильно. А что в ppErrorMsgs  ? Есть значение? Там можно поидее текст ошибки достать
Параметр задан неверно.
И... все)
источник

AM

Anatoly Manzhugin in Microsoft Developer Community Chat
ух. многословно :)
источник

EK

Eugeny Klokov in Microsoft Developer Community Chat
да ваще
источник

EK

Eugeny Klokov in Microsoft Developer Community Chat
источник

EK

Eugeny Klokov in Microsoft Developer Community Chat
аштрисет
источник

G

Gopneg in Microsoft Developer Community Chat
Eugeny Klokov
Параметр задан неверно.
И... все)
так задай верно делов-то
источник

AM

Anatoly Manzhugin in Microsoft Developer Community Chat
хм. интересно. А ты вот в коде шейдера не используешь параметры которые пришли. если память не изменяет то в opengl компилятор выбрасывает такие аргументы, как будто их и не было. может тут такое же. Сорян в dx не силён особо. Но стало очень интересно
источник

EK

Eugeny Klokov in Microsoft Developer Community Chat
я пробовал и голый float4() : SV_TARGET делать. Результат такой же. Плюс я отключил оптимизации
источник

AG

Alex Gureev in Microsoft Developer Community Chat
Telegram снова жив
источник

‌‌‍‍‌ ‌‌‍‍‌‏Denis in Microsoft Developer Community Chat
пинг
источник

МЕ

Максим Еремин in Microsoft Developer Community Chat
Ура, жив
источник

IB

Inna Bondareva in Microsoft Developer Community Chat
источник

DV

Don Vovchuk in Microsoft Developer Community Chat
источник