게시글
질문&답변
C++ 강의 계획이 있으신지 궁금합니다
c++ 강의는 워낙에 널려있어서 프로그래밍 언어에 대한 집착이 적은 저같은 사람이 진행하기엔 적합하지 않다고 생각합니다. 따라서 c++강의계획은 고려하고 있지 않습니다.
- 0
- 2
- 37
질문&답변
windbg ifeo 관련 질문
store app권한제한을 우회할 수 있는 방법은 없는 것으로 압니다. 구버전을 쓰시는 방법밖에 없을것 같네요.
- 0
- 2
- 35
질문&답변
원격 디버그가 안붙어요
가상환경이 32bits여야 할 필요는 없습니다.vm쪽에서 kdnet을 실행해보시고 Network debugging is supported by this Microsoft Hypervisor Virtual Machine.라는 메시지가 출력되는지 확인해보세요. 그럴 가능성은 낮아보입니다만 NIC에 따라 네트워크 디버깅이 지원되지 않을 수 있습니다.(사진)호스트 장비의 ip가 192.168.0.100이 맞나요? 저 ip는 제 장비의 ip인데 그대로 복붙하신게 아닌가 싶네요. VM측에서 host쪽으로 ping을 해서 실제 네트워크 연결이 가능한지 확인해보세요.
- 0
- 1
- 96
질문&답변
21분 PAE 약자
Physical Address Extension이 맞습니다.다음 링크를 참고해주세요.https://learn.microsoft.com/en-us/windows/win32/memory/physical-address-extension
- 0
- 2
- 69
질문&답변
질문있습니다.
안녕하세요 유영천입니다. 놀랍게도 ai가 답변한 내용이 맞습니다. 말이 좀 이상하지만 어쨌든 맞긴 맞습니다. -_-1번 질문)바깥에서 디스크립터를 설정(CopyDescriptorSimple등을 이용)하지 않아도 쉐이더에서 해당 리소스를 억세스 하지 않는 이상,D3D런타임이나 쉐이더 코드는 그 위치(b0, t0등)의 디스크립터가 설정이되어있는지조차 알지 못합니다. 만일 이렇게 설정을 하지 않은 상태에서 쉐이더 코드에서 해당 위치(b0, t0등)를 억세스 할 경우에는 gpu쪽에서 크래시하게 됩니다.어쨌든 쉐이더 코드에서 정말 사용하지 않는다면 문제 없습니다. 2) RootSignature를 전달하는 이유 자체가 해당 주소로부터 순서대로 억세스하기 위함입니다. 따라서 시작 위치와 개수를 알면 중간 원소들에 대해선 별도의 바인딩이 필요없는것이죠. 쉐이더코드 RootSignature에 적혀있는대로 시작 위치와 개수만을 무조건 믿고 처리합니다.질문하신대로 RootSignature에서 총 10개의 레지스터를 사용하고 있다면(디스크립터 10칸) 추가되는 draw코드에선 10칸만큼(10 x DescriptorSize) 이동한 descriptor handle을 전달하면 됩니다.
- 0
- 2
- 328
질문&답변
소스코드
확인이 늦어서 죄송합니다. 강의노트에 소스코드 주소를 추가했습니다.여기서 받으시면 됩니다.https://github.com/megayuchi/DebuggingTip
- 1
- 2
- 170
질문&답변
Descriptor를 복사하는 이유
non shader visible heap을 사용하는 이유는 해당 텍스처를 여러 렌더링 상황에서 공유해서 사용하기 위함입니다. draw할때 입력된 인자에 따라 텍스처를 바꿔가면서 렌더링 한다고 가정해봅시다.shader visible 속성의 heap에 텍스처의 디스크립터를 만들게 되면 이 디스크립터는 카피가 불가능하므로 각각의 텍스처가 세팅된 디스크립터 테이블을 미리 여러 벌 만들어둬야 합니다.non shader visible 속성의 heap에 텍스처 디스크립터를 만들면 이 디스크립터는 어떤 shader visible descriptor 테이블에도 카피가 가능하므로 미리 여러벌의 desriptor table을 만들어둘 필요없이 실시간으로 텍스처를 바꿔가며 렌더링 할 수 있습니다.
- 0
- 2
- 210
질문&답변
코드에 대한질문있습니다.
IDXGIAdapter::GetDesc()함수를 사용하면 Device ID를 얻을 수 있습니다.RTX4090의 Device ID를 얻어서 다음과 같이 비교해서 4090이 아니면 스킵시키면 됩니다.내부 코드로는 이 정도로 충분하고 배포를 한다면 그래픽 카드를 선택할 수 있는 옵션을 주는게 좋겠죠.#define DEVICE_ID_RTX4090 XXXXXX...DXGI_ADAPTER_DESC desc;pAdapter->GetDesc(&adapterDesc);if (DEVICE_ID_RTX4090 != adapterDesc.DeviceId){ continue;}
- 0
- 2
- 154
질문&답변
Comptr 을 안쓸시 메모리 해제순서
d3ddevice에서 생성한 객체부터 먼저 해제하고 d3ddevice는 가장 나중에 해제하는게 기본입니다. 디버깅과 정확한 테스트를 위해서 d3d뿐 아니라 모든 com객체는 생성순서의 역순으로 해제하는게 좋습니다.
- 0
- 2
- 186
질문&답변
raw pointer 쓰시는 이유가 따로 있으신가요?
디버깅 할 때 훨씬 직관적입니다. 이게 가장 중요한 이유입니다.빌드가 빠릅니다.코드사이즈가 작게 나옵니다.런타임 속도가 더 빠릅니다. 그리고 기본적으로 예제코드는 최대한 캡슐화를 배제하고 날것으로 노출합니다. 이쪽이 코드를 분석하기 편합니다.
- 0
- 1
- 290