쉐이더를 컴파일 할 때 도 디버그 모드로 컴파일 하겠다는 플래그를 설정을 해줘야 디버거를 더 효율적으로 사용 가능하다.
컴파일 최적화 끄기와 디버깅 사용을 설정한다

설정한거 여기다가 플래그 넣기 각 쉐이더 별로 만들어서 넣어야함

그래픽 디버깅 시작

원하는 프레임에 캡쳐

이미지 더블클릭해서 해당 프레임의 정보와 파이프라인 진행이 어떻게 되었는지 확인 가능

오른쪽에서 쉐이더를 클릭 후 원하는 vertex 를 실행하면 해당 vertex 의 진행 상황을 단계 별로 (f10) 확인가능

hlsl 코드를 어셈블리 단으로 확인 가능

쉐이더 컴파일 2
쉐이더 컴파일 방식은 3가지가 있는데 d3d 컴파일fromfile 을 이용하는 방식.

다른 방법은 프로젝트에 쉐이더가 있으면 컴파일 하면
아래 파일이 생성되고 이 바이너리 파일로 미리 만들고 이걸 읽어들여서 쉐이더를 초기화 하는 것이다.
3번째 방법은 커맨드를 이용하는 것이다. ( cmd 로 수동 컴파일 )

cso 파일로 컴파일 할거면 아래와 같이 시도하면 될 것 ( 바이너리로 읽어들여서 shader 컴파일 하기 )
// ifstream input("ColorVertexShader.cso", ios::binary);
// vector<unsigned char> buffer(istreambuf_iterator<char>(input), {});
// m_device->CreateVertexShader(buffer.data(), buffer.size(), NULL,
// &vertexShader);
// m_device->CreateInputLayout(inputElements.data(),
// UINT(inputElements.size()), buffer.data(),
// buffer.size(), &inputLayout);
}
그리고 각 hlsl 은 단계 맞는 쉐이더 형식으로 넣어주면 좋다

'DX' 카테고리의 다른 글
| 텍스처링 (0) | 2025.06.16 |
|---|---|
| HLSL 코드 예제 (0) | 2025.06.15 |
| HLSL 기본 문법 (0) | 2025.06.15 |
| HLSL 개요 (0) | 2025.06.15 |
| 모델 뷰 프로젝션 (MVP) 과 프로젝션 행렬 (0) | 2025.06.15 |