질문있습니다.
176
19 asked
질문1)
D3D12_DESCRIPTOR_RANGE ranges[2] =
{
{ D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 5, 0, 0, D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND }, // b0 ~ b4
{ D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 5, 0, 0, D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND } // t0 ~ t4
};
CD3DX12_ROOT_PARAMETER rootParameters[1] = {};
rootParameters[0].InitAsDescriptorTable(_countof(ranges), ranges, D3D12_SHADER_VISIBILITY_ALL);
와 같이 루트시그니처에서 테이블의 사용범위를 넓게잡아두고
사용할때만 Shader 에서 buffer를 정의 ( ex :cbuffer WVP: register(b0 )해서
사용해주고있는데 테이블힙의 메모리 낭비를 제외하면 성능에 큰 악영향이 있을까요?
런타임에 터지거나 하는 오류는 현재 없는데 궁금해서 여쭤봅니다.
질문2)
제가 이해한게 맞나 궁금해서 질문드립니다.
질문1의 방식처럼 rootSignature 를 만들었다고 하였을때 ,
SetGraphicsRootDescriptorTable 함수인자에 핸들값을 넣을때
RootSignature 에서는 b0~b5 ,t0~t5 의 총10개를 사용한다고 서명했기떄문에 ,
DX에서 읽을때 10개단위로 읽어주기 때문에 선두에 있는 handle 값만 넣어주는 방식이 맞나요?
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
pakheae님의 질문에 답변드리겠습니다.
질문1) 루트 시그니처에서 데스크립터 테이블의 사용 범위를 넓게 잡아 두고 실제 사용 시에만 쉐이더에서 버퍼를 정의하여 사용하는 경우, 테이블 힙의 메모리 낭비는 있을 수 있지만, 실제 성능에 미치는 악영향은 크지 않습니다. 다만, 루트 시그니처와 데스크립터 테이블을 효율적으로 설계하여 사용하는 것이 좋으며, 이는 메모리 사용 최적화와 관리 측면에서 이점을 줄 수 있습니다.
질문2) 제공하신 이미지와 내용에 따르면, SetGraphicsRootDescriptorTable 함수의 인자로 핸들 값을 넣을 때, RootSignature에서 선언한 f b0~b5, t0~t5까지 총 10개의 데스크립터를 사용한다고 가정했을 때, DX는 이를 10개 단위로 읽어 들이는 방식이 맞습니다. 이때 선두에 있는 핸들 값을 기준으로 연속된 메모리 블록을 참조하여 필요한 정보를 가져오게 됩니다. 이미지 설명을 바탕으로 한 설명이 정확하게 해당 사핞을 이해하셨습니다.
도움이 되었기를 바랍니다. 추가적인 질문이나 궁금하신 점이 있으시다면 언제든지 문의해 주세요.
복습중에 커맨드 큐 관련 질문이 있습니다.
0
33
1
_vsBlob와 _psBlob에서 nullptr이 뜨면서 실행이 안됩니다
0
56
1
#include d3dx12.h 추가했지만 오류
0
81
1
LNK1104 error, DirectXTexD.lib 파일을 열 수 없습니다.
0
122
1
[DirectXTex LNK2019 에러]
0
243
2
UI 랜더링이 이해가 안되어 질문드립니다
0
175
1
insideTess 값 관련 질문
0
125
1
렌더 타겟을 SRV로 사용하려고 합니다.
0
181
1
C++ 언어 표준과 Engine.lib 오류에 관하여..
0
280
2
실행과정에서의 문제
0
393
3
결과물에 의문이 생겨서 한가지 질문 드립니다
0
147
1
uv좌표변환
0
147
1
Shader 관련 문제
0
222
1
Load 부분에서 문제가 있어 질문드립니다
0
162
1
강의에서 보여진 모습과 다른모양이 되어서 질문드립니다
0
173
1
enumclass 질문입니다
0
152
1
nullptr오류가 발생해요.
0
362
2
Normal Mapping / Assertion failed! 오류
0
219
1
1>LINK : fatal error LNK1104: 'Engine.lib' 파일을 열 수 없습니다.
0
429
2
shared_ptr 과 헤더파일 관련하여 질문있습니다
0
206
1
장치 초기화 nullptr이 자꾸 발견 되네요.
0
299
2
용 모델에 분명 Diffuse 텍스쳐가 있는것같은데 왜 적용이 안되나요?
0
251
1
안녕하세요 질문있습니다
0
203
1
DirectX11 강의 질문
0
352
1

