해결된 질문
작성
·
381
0
안녕하세요.
섹션10 RawBuffer의 _result버퍼 생성시 BUFFER_DESC 설정 부분 질문 드립니다.
"B-14)+Viewport" 샘플 코드를 참조하였습니다.
RawBuffer.cpp (줄: 120) 을 보면 아래와 같이 작성해주셨는데요
void RawBuffer::CreateResult()
{
D3D11_BUFFER_DESC desc;
_output->GetDesc(&desc);
desc.Usage = D3D11_USAGE_STAGING;
desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ;
desc.BindFlags = D3D11_USAGE_DEFAULT; // UAV가 연결되려면, USAGE는 DEFAULT여야 함.
desc.MiscFlags = 0;
CHECK(DEVICE->CreateBuffer(&desc, nullptr, _result.GetAddressOf()));
}
desc.Usage 에 USAGE_STAGING 을 주셨는데, 아래 BindFlags 옆 주석으로는 "Usage 는 DEFAULT 여야 한다"고 적어주셔서 혼란스럽습니다.
그리고 BindFlags 에 USAGE_DEFAULT 를 주셨는데, 의도 된 값인지, 의도한 값이 아니라면 어떤 Flags 를 주어야 하는지 궁금합니다.
감사합니다.
답변 4
1
안녕하세요,
세부적인 옵션 값들은 MS 공식 문서를 살펴보시는게 가장 정확합니다.
보통 설정에 문제가 있으면 아예 실행되지 않고 크래시가 납니다.
https://learn.microsoft.com/ko-kr/windows/win32/api/d3d11/ns-d3d11-d3d11_buffer_desc
주석으로 달린 부분은 대부분 실험 결과인데,
저 부분은 주석이 잘못되었고 D3D11_USAGE_DEFAULT를 하는게 아니라 그냥 0으로 밀면 됩니다.
(공교롭게도 D3D11_USAGE_DEFAULT가 0이긴 하네요)
0
0
-1
안녕하세요, 인프런 AI 인턴입니다.
같은 강의의 다른 수강생이 비슷한 주제에 대해 질문한 내용에 대한 답변이 있습니다. 해당 답변에서는 ConstantBuffer의 사용과 GPU 메모리에 대한 이해를 돕는 설명이 포함되어 있으며, 이는 RawBuffer 생성과 관련하여 유용한 정보를 제공할 수 있습니다.
질문자님의 혼란을 해소하는 데 도움이 될 수 있을 것 같습니다. 아래의 링크에서 상세한 답변을 확인하실 수 있습니다:
답변 내용 중에서 RawBuffer나 ConstantBuffer를 사용할 때의 Usage
및 BindFlags
의 적절한 값을 설정하는 방법에 대한 설명이 있을 수 있으니 참고하시면 도움이 될 것입니다. 추가적인 질문이 있다면 해당 강의의 질문&답변 게시판을 통해 질문을 남기시면 강사님께서 답변해주실 것입니다.
인용된 링크의 질문글에서 D3D11_USAGE_ 관련 언급이 나오긴 하나, 본 글의 질문 요지와는 다릅니다. 질문 내용은 샘플 코드의 유효성과 올바른 값에 대한 문의입니다.
그리고 인용된 링크 질문글 답변은 "언젠가 스스로 답을 얻게 될 것" 이라는 내용이고, 본 질문은 샘플 코드에 대한 내용이기 때문에 답이 되기 어렵습니다.
남겨주신 내용 보고 뒤에 나오는 StructuredBuffer 도 살펴보니 _result 버퍼가 같은 설정이었군요. 아래 인용된 글에서 답변 주신 "언젠가 스스로 답을 얻게 되실겁니다." 가 결국엔 또 답이 된 것 같습니다.
답변 주셔서 감사합니다.