프로그래머
C++,x86/x64 ASM, DirectX9/11/12, Metal, OpenGL, CUDA, win32, winsock/bsd socket
인프런 강의
D3D12프로그래밍 기초편 - https://inf.run/7gJhS
D3D12프로그래밍 기초플러스 - https://inf.run/itHDW
DirectX Raytracing 프로그래밍 - https://inf.run/cQqx7
Windows System 프로그래밍 - https://inf.run/AwfCv
Windows Debugging Tips - https://inf.run/zL7E4
Blog : https://megayuchi.com
Youtube : https://youtube.com/megayuchi
LinkedIn : https://www.linkedin.com/in/megayuchi/
Khóa học
Đánh giá khóa học
- Lập trình hệ thống Windows
- Lập trình D3D12 cơ bản +
- Mẹo gỡ lỗi Windows
- Lập trình D3D12 - Cơ bản
Bài viết
Hỏi & Đáp
7강 스레드제어 강의, 26분경 질문입니다.
말씀하신대로 0이 맞습니다.제가 실수했네요.
- 1
- 1
- 23
Hỏi & Đáp
CommandList의 GraphicsCommandList 변경이유
ID3D12CommandList는 그래픽스 커맨드 레코딩이 불가능합니다. 작동이 아예 불가하기 ID3D12CommandList로 사용했던 적이 없을텐데 이상하네요. 코드 라인을 긁어서 질문해주시면 좀더 자세하게 답변해드릴 수 있을것 같습니다.
- 0
- 2
- 45
Hỏi & Đáp
[25:13] Virtual Interface 와 COM Interface간의 차이가 궁금합니다.
in-process COM은 virtual 함수로 구현됩니다. 실제로 직접 COM객체를 구현해도 C++의 virtual interface를 사용해서 구현하게 됩니다. 따라서 사전적 의미로는 COM Interface와 virtual interface가 다른 말일지라도 실질적으론 같은 말입니다.
- 0
- 1
- 45
Hỏi & Đáp
C++ 강의 계획이 있으신지 궁금합니다
c++ 강의는 워낙에 널려있어서 프로그래밍 언어에 대한 집착이 적은 저같은 사람이 진행하기엔 적합하지 않다고 생각합니다. 따라서 c++강의계획은 고려하고 있지 않습니다.
- 0
- 2
- 113
Hỏi & Đáp
windbg ifeo 관련 질문
store app권한제한을 우회할 수 있는 방법은 없는 것으로 압니다. 구버전을 쓰시는 방법밖에 없을것 같네요.
- 0
- 2
- 76
Hỏi & Đáp
원격 디버그가 안붙어요
가상환경이 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
- 137
Hỏi & Đáp
21분 PAE 약자
Physical Address Extension이 맞습니다.다음 링크를 참고해주세요.https://learn.microsoft.com/en-us/windows/win32/memory/physical-address-extension
- 0
- 2
- 106
Hỏi & Đáp
질문있습니다.
안녕하세요 유영천입니다. 놀랍게도 ai가 답변한 내용이 맞습니다. 말이 좀 이상하지만 어쨌든 맞긴 맞습니다. -_-1번 질문)바깥에서 디스크립터를 설정(CopyDescriptorSimple등을 이용)하지 않아도 쉐이더에서 해당 리소스를 억세스 하지 않는 이상,D3D런타임이나 쉐이더 코드는 그 위치(b0, t0등)의 디스크립터가 설정이되어있는지조차 알지 못합니다. 만일 이렇게 설정을 하지 않은 상태에서 쉐이더 코드에서 해당 위치(b0, t0등)를 억세스 할 경우에는 gpu쪽에서 크래시하게 됩니다.어쨌든 쉐이더 코드에서 정말 사용하지 않는다면 문제 없습니다. 2) RootSignature를 전달하는 이유 자체가 해당 주소로부터 순서대로 억세스하기 위함입니다. 따라서 시작 위치와 개수를 알면 중간 원소들에 대해선 별도의 바인딩이 필요없는것이죠. 쉐이더코드 RootSignature에 적혀있는대로 시작 위치와 개수만을 무조건 믿고 처리합니다.질문하신대로 RootSignature에서 총 10개의 레지스터를 사용하고 있다면(디스크립터 10칸) 추가되는 draw코드에선 10칸만큼(10 x DescriptorSize) 이동한 descriptor handle을 전달하면 됩니다.
- 0
- 2
- 361
Hỏi & Đáp
소스코드
확인이 늦어서 죄송합니다. 강의노트에 소스코드 주소를 추가했습니다.여기서 받으시면 됩니다.https://github.com/megayuchi/DebuggingTip
- 1
- 2
- 198
Hỏi & Đáp
Descriptor를 복사하는 이유
non shader visible heap을 사용하는 이유는 해당 텍스처를 여러 렌더링 상황에서 공유해서 사용하기 위함입니다. draw할때 입력된 인자에 따라 텍스처를 바꿔가면서 렌더링 한다고 가정해봅시다.shader visible 속성의 heap에 텍스처의 디스크립터를 만들게 되면 이 디스크립터는 카피가 불가능하므로 각각의 텍스처가 세팅된 디스크립터 테이블을 미리 여러 벌 만들어둬야 합니다.non shader visible 속성의 heap에 텍스처 디스크립터를 만들면 이 디스크립터는 어떤 shader visible descriptor 테이블에도 카피가 가능하므로 미리 여러벌의 desriptor table을 만들어둘 필요없이 실시간으로 텍스처를 바꿔가며 렌더링 할 수 있습니다.
- 0
- 2
- 249