모바일 GPU 관련 오늘의 교훈.

모바일 GPU(Adreno 430)에서 Compute Shader를 호출할때 Group 개수를 0으로 세팅하면 GPU 익셉션 발생. 그 여파로 DirectX Device를 더 이상 사용할 수 없게 된다.(Error:D3DDevice removed). 이건 퀄컴 GPU만의 문제일것도 아닐것이고 DirectX만의 문제도 아닐것이다. 비슷한 케이스의 문제라면 모든 모바일 GPU가 해당되리라 예상한다. Group 개수를 0으로 해서 호출하는건 바보짓이지만 그렇다고 GPU에서 익셉션을 발생시킬 정도의 치명적인 에러는 아니라고 생각하는데. … More 모바일 GPU 관련 오늘의 교훈.

Win 10 Insider Preview에서 DirectX Debug layer를 사용할 수 없을때

Windows 10 Insider Preview사용시 OS빌드버전과 설치된 SDK버전이 일치하지 않으면 DirectX Debug Layer를 사용할 수 없다. 이때 다음의 feature를 추가하면 Debug Layer를 사용할 수 있다. Settings ->System->App&Feature->Manage optional features->Add feature에서 Graphics Tools를 설치 리부팅이 필요한진 모르겠는데(난 리부팅했음) 이후로는 D3D12GetDebugInterface()함수가 정상적으로 리턴. debug layer사용이 가능함.  

GameDev-UWP와 Desktop버전 동시 지원

예전에도 포스팅한적이 있는데 나는 지금껏 작업해온 엔진을 UWP용으로도 유지하고 있었다. 아니 정확히는 유지는 잘 못했다. 작년 12월 이후로는 유지보수를 못하고 있었다. 데스크탑 버전의 경우 12월부터 지금까지 DX12를 지원하는데 대부분의 시간을 보냈다. 그런데 DX12를 지원하면서 DX11버전도 사실 많이 바뀌었다. DX12와 인터페이스를 맞춰야하다보니 그리 된것도 있고 이번 게임데모 프로젝트를 위해서 렌더러 외의 모듈에도 기능추가가 있었기 때문에 많은 … More GameDev-UWP와 Desktop버전 동시 지원

DX12 비동기 쉐이더 논쟁

게임, 하드웨어 관련 모사이트들에서 비동기쉐이더 어쩌고 N사 GPU를 가루가 되도록 까고 있길래 뭔 소린가 찾아봤다. 일단 용어와 구현을 전혀 이해하지자기들이 뭔말하는지 모르고 떠들고 있다. 비동기 쉐이더란 용어는 AMD가 사용하는 용어이다. NVIDIA GPU의 비동기처리는 CUDA에서 이미 하고 있다. DX12에서도 그 용어를 사용하지 않는다. 그리고 그들이 말하는 소위 비동기 쉐이더란걸 DX12에서 적극 활용하려면 CommandQueue를 여러개 써야한다. CommandQueue안의 … More DX12 비동기 쉐이더 논쟁

DirectX 11 Desktop Game UWP App으로 포팅하기

MS MVP/RD Asia meetup행사때 MS재팬 스튜디오에서 영상을 찍을 기회가 있어서 짧게 발표자료를 만들었습니다. 촬영 이후. 발표자료를 약간 수정하고 뒤에 데모영상 링크를 첨부했습니다. https://doc.co/rtg4c3   이 내용과 관련된 동영상은 유튜브에 올렸습니다. DirectX 11 Game Engine for win32 and UWP(Window 10 ,Windows 10 Mobile) Testing my game engine on Lumia 1520 Testing my game engine on Lumia … More DirectX 11 Desktop Game UWP App으로 포팅하기

DirectX 11 Game engine for win32,UWP

요새 만들고 있는건 이런것. C++ DirectX 11엔진이다. 요새 계속 포스팅했던 내용을 영상으로 찍어서 올려본다. win32버전을 기본으로 UWP앱 버전을 만들었다. 첫번짼 win32, 두번째는 데스크탑에서의 UWP app , 세번째는 Windows 10 Phone에서의 UWP App. DX11 Feature를 지원하는 리얼 윈폰 하드웨어에서 실행하고 싶었지만 루미아 950을 구하지 못해서 그냥 에뮬레이터로 돌렸다. 루미아 1520으로도 작동할순 있지만 Feature Level 9.3으로 돌려야하고 … More DirectX 11 Game engine for win32,UWP

megayuchi 엔진 win32 -> UWP 포팅작업 #3

Voxel Horizon 프로젝트에 사용중인 내 엔진-megayuchi엔진의 포팅작업 마무리. 데스크탑 DX11엔진에 UWP엔진 코드를 완전히 맞췄다. 그 UWP 엔진에서 다시 렌더러를 DX Feature Level 11과 Feature Level 9의 두개 버전으로 갈라서 별도의 DLL을 만들었다. 마음같아선 Feature Level 9용 엔진따위 갖다버리고 싶지만 내 루미아 1520을 비롯해서 앞으로 상당기간동안 11을 지원하지 않는 폰들이 대부분일테니까. 일단 윈폰 에뮬레이터에서 DX11피쳐는 돌아감. … More megayuchi 엔진 win32 -> UWP 포팅작업 #3

Voxel Horizon on Windows 10 UWP – DirectX Feature Level 11

megayuchi엔진의 UWP버전에 데스크탑 버전의 기능을 거의 99% 포팅했다. DirectX 11은 실제로 DirectX 11의 기능을 준수하지 못하는 디바이스에서도 작동할 수 있다. Feature Level이란 단계로 구분하는데 9.0, 9.1, 9.3 , 10.0 , 11.0 등으로 구분한다. 예를 들어 DirectX 9세대의 그래픽 카드인 경우 Feature Level 9.0으로 D3DDevice를 생성할 수 있다. 당연히 DX11의 기능은 사용하지 못한다. 다만 프로그래밍은 DX11로 할 수 … More Voxel Horizon on Windows 10 UWP – DirectX Feature Level 11

Voxel Horizon on Windows 10 UWP

예전에 win32, Windows 8.1/Windows Phone 8.1로 만들었던 Voxel Horzon프로젝트를 Windows 10 UWP로 포팅했다. 기본적으로는 Windows 8.1의 WinRT코드를 사용했고 Windows 10에서 추가된 win32 api들을 사용해서 코드를 좀더 간결하게, 데스크탑버전과 유사하게 맞출 수 있었다. 특히 SetCurrentDirectory(),GetCurrentDirectory()를 사용할 수 있게 된 것이 엄청 큰 도움이 됐다. 장난감같은 정도로라도 완성 지어서 Windows Store에 올려야지.