본문 바로가기

DX

HLSL 디버거

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

 

컴파일 최적화 끄기와 디버깅 사용을 설정한다

 

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

 

그래픽 디버깅 시작

 

원하는 프레임에 캡쳐

 

 

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

 

오른쪽에서 쉐이더를 클릭 후 원하는 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