오래된 디버깅 얘기 한 토막

2003년인가 2004년에 Visual Studio .NET 따위엔 아무도(적어도 게임업계에선) 관심 없었고 Visual C++ 6.0으로 개발하던 시절에 스택 프레임의 리턴 어드레스가 정상인지 판별하기 위해서 컴파일러가 해줄 수 있는게 없었다. 내가 다니던 회사의 C모 온라인 서버가 동접 1000만 넘어가면 죽어나갔는데 아무도 원인을 몰랐음. 디버거로 보면 IP(Instruction Pointer)가 엉뚱한 어드레스로 튀어있으니 리턴 어드레스에 잘못된 값이 들어간걸로 보이는데 대체 그게 … More 오래된 디버깅 얘기 한 토막

도장 찍다 망해버려라.

이젠 하드웨어 제조사도 자신들의 제품을 만들때 CPU를 직접 만들지 않는다. 일반적으로 생산되는 CPU를 사용한다. 왜냐하면 직접 CPU를 만들기는 너무나 어렵고 직접 만들어봐야 가격대 성능비가 형편없을게 분명하기 때문이다. 아마 게임엔진을 사 쓰는것도 비슷한 이유겠지. 그렇지만 나는 이 부분에 대해서 완전 동의할 수가 없다. 나 혼자서 언리얼 엔진 정도를 만들순 없겠지만…나 혼자서도 게임을 개발할 수 있는 정도의 … More 도장 찍다 망해버려라.

한국어 블로그 포스팅에 회의를 느낀다.

난 한국이 싫다. 아니 노무현 대통령 시절까지도 한국이 그래도 살만한 나라라고 믿었고 내가 열심히 하면 더 좋아진다고 생각했다. 지금은 그렇게 생각지 않는다. 그렇다고 해외에 나가면 나를 위한 아름다운 세상이 펼쳐져 있을거라고 생각하는것은 더더욱 아니다. 설령 내가 영어를 제법 했다고 해도 말이다. 난 가족과 자주 얼굴을 보고 싶다. 오랜 친구들과 24시간 패스트푸드에서 콜라 마시며 잡담하는게 좋다. … More 한국어 블로그 포스팅에 회의를 느낀다.

내가 AMD(구 ATI) GPU를 사용하지 않는 이유

정확히는 AMD(구 ATI) GPU가 무척이나 싫어지게 된 계기들. – 2001년쯤이었나.개발자료좀 찾으러 ATI홈피에 들어갔는데 당췌 찾을수가 없음. 개발자한테 공개하는 샘플이나 문서가 없었거나 내가 못찾았거나 둘중의 하나겠지. 반면 nvidia는 첫페이지에서 쉽게 찾을 수 있었음. 그 당시에도 nvidia는 nvidia SDK란걸 배포하고 있었다. 당장 개발자를 위한 지원및 연구란 측면에서 비교해보면 nvidia의 GPU Gems( https://developer.nvidia.com/gpugems/GPUGems/gpugems_pref01.html )란 책만 봐도 차이가 팍팍 남. … More 내가 AMD(구 ATI) GPU를 사용하지 않는 이유

80년대에는 프로그래밍이 쉬웠는줄 아나..

고전 소프트웨어들(80-90년대, 주로 8bit or dos시절)을 보고 되는게 적으니 만들기도 쉬웠을거라 생각하는 사람들이 있다. 물론 지금의 도구들을 사용하면 쉽게 만들 수 있다. 그리고 용량은 100배가 넘지. 요구하는 하드웨어 스펙도 어마어마하다. 작고 빠르게 만들기 얼마나 어려웠냐는 둘째치고 그 시절에 기계어와 어셈블리로 작성된 소프트웨어들을 지금의 프로그래머가 기계어와 어셈으로 만들 수 있는가 하면, 그럴 수 있는 사람 별로 … More 80년대에는 프로그래밍이 쉬웠는줄 아나..

게임엔진의 나아갈 방향이 리얼한 그래픽이라고?

왜 게임엔진의 갈 방향이 리얼한 그래픽인가? 난 전혀 동의하지 않는다. 뭐가 됐든간에 플레이어한테 즐거움을 줄 수 있는 방향이면 된다. 예를 들면 ‘초차원게임넵튠의 렌더링이 조금 더 화려해졌으면 좋겠다.’ 라는 정도의 목표를 달성할 수 있으면 충분하다. ‘드림클럽의 렌더링이 조금 더 있어보이고 인터랙션이 있으면 좋겠다.’ 라든가. 나한테 맡겨주면 잘할 자신 있는데 말이지. 유튜브에서 MMD를 찾다보면 아니메 타입으로 모델링된 … More 게임엔진의 나아갈 방향이 리얼한 그래픽이라고?

DX11과 DX12의 성능차에 대한 잡설

DX12에서 CPU에서 처리하는 시간을 줄인건 명백한 사실이다. 그런데 DX12로 짜면 GPU큐를 꽉 채우기가 진짜 힘들다. DX12로 포팅한 게임이 성능이 안나오는건 GPU와 게임이 DX12를 제대로 지원을 안해서가 아니고 GPU가 놀게 되는게 문제다. 궁금한 사람들은 GPU-Z라도 띄워서 DX12용 게임을 플레이할때 GPU점유율이 몇%나 나오는지 확인해보라. DX11과 비슷하거나 성능이 조금 더 안나오는 게임이라면 GPU점유율이 11에 비해서 12일때 더 떨어진다. … More DX11과 DX12의 성능차에 대한 잡설

쏘렌토 미션 이상증상

오랫만에 일상 얘기. 몇일전 타이어 교체하다가 뭔 일이 있었냐면… 타이어 교체하고 휠얼라인 잡으력고 옆칸으로 이동하는데 기사 아저씨가 자꾸 시동을 꺼먹는다. ‘뭐냐 쌩초보냐..’ 라고 생각하며 뛰어내려가보니 1단이 안들어간다는거다. 참고로 내 차 수동미션이다. 그래서 내가 타보니 진짜 1단이 안들어간다. 게다가 2단도 안들어간다. 시동을 걸고나서 클러치를 살며시 떼보면(시동걸땐 클러치를 밟고 시동건다) 시동이 탁 꺼진다. 기어봉이 중립에 있는데도 시동이 … More 쏘렌토 미션 이상증상

DX12 비동기 쉐이더 논쟁

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

D3D12- D3DResource 64KB Align의 폐해

D3D12에서 GPU Dedicated메모리를 쳐묵쳐묵하는 건은 64KB Align 문제가 맞는것으로 결론. Vertex Buffer 1개 잡고 안에서 잘라쓰니 메모리가 확실히 줄어든다. 10년쯤 전에 나는 다용도로 쓸 수 있는, 그러니까 zero-base의 어드레스를 할당/해제/병합 시켜주는 Heap자료구조 코드를 만들었었다. 그 자료구조에 Vertex Buffer를 맵핑해서 Vertex Buffer 덩어리를 놓고 heap처럼 사용해서 Vertex Buffer Cache란걸 만들어서 사용했다. … 지금 64KB Align 낭비를 … More D3D12- D3DResource 64KB Align의 폐해