[Vulkan Tutorial] 13-Shader Modules on Graphics Pipeline

목차: 01-Overview (Link)이전 글: 12-Introduction of Graphics Pipeline (Link)다음 글: 14-TBD (Link) SPIR-V (Bytecode Format) and GLSL/HLSL (Human-Readable Format) 기존 Graphics API는 Shader 코드를 Human-Readable Syntax 형태의 GLSL, HLSL로 작성하였다. Vulkan의 경우 기존 Graphics API와 달리 Bytecode Format 형태의 SPIR-V 코드로 작성해야 한다. Vulkan은 Graphics Shader 코드와 Compute Shader 코드 모두 같은 Bytecode Format 형태를 사용한다. 우리의… Read More »

[Vulkan Tutorial] 12-Introduction of Graphics Pipeline

목차: 01-Overview (Link)이전 글: 11-Create Image Views (Link)다음 글: 13-Shader Modules on Graphics Pipeline (Link) 이번 장을 시작으로 몇 차례에 걸쳐서 Graphics Pipeline 설명과 Graphics Pipeline을 생성하는 코드에 대해서 작성할 예정이다. 먼저 Graphics Pipeline에 대한 설명을 작성하였다. 예전에 출처 1을 기준으로 Graphics Pipeline에 대한 글을 작성한 적이 있다 (출처 2). 이번 글을 출처 2의 내용과 거의 동일하다. … Read More »

[Vulkan Tutorial] 11-Create Image Views

목차: 01-Overview (Link)이전 글: 10-Create Swap Chain (Link)다음 글: 12-Introduction of Graphics Pipeline (Link) 앞 장에서 Swap Chain을 생성하는 방법을 정리하였다. Swap Chain을 생성하면 Image (VkImage)가 생성된다. 해당 Image (VkImage)를 사용하기 위해서 Image View (VkImageView)를 생성해야 한다. 출처 1에서 Image View (VkImageView)에 대한 설명이 다소 어려워서 다른 설명을 찾아보았다. 개인적으로 출처 2에서 제공하는 Image View (VkImageView)에 대한 설명이… Read More »

[Vulkan Tutorial] 10-Create Swap Chain

목차: 01-Overview (Link)이전 글: 09-Create Logical Device (Link)다음 글: 11-Create Image Views (Link) What is Swap Chain? 이번 장에서는 Swap Chain을 생성할 차례이다. 이전에 Swap Chain에 대해서 정리한 적이 있다 (출처 2). Vulkan Tutorial에서 설명하는 Swap Chain에 대해서 추가로 정리해보았다. 결과적으로 출처 2에 작성한 내용과 큰(?) 차이는 없으나, 조금 더 상세하게 설명을 작성하였다. 내용은 출처 1, 3, 4… Read More »

[Vulkan Tutorial] 09-Create Logical Device

목차: 01-Overview (Link)이전 글: 08-Search and Select Queue Families (Link)다음 글: 10-Create Swap Chain (Link) Create Logical Device Physical Device를 선택하고, Queue Family를 선택하였으면 다음은 Logical Device를 생성할 차례이다. Logical Device는 Physical Device와 인터페이스(Interface, 통신의 의미로 사용하면 될 것 같음)를 하기 위해서 사용한다. Logical Device 생성 과정은 Instance 생성 과정과 비슷하다. 하나의 Physical Device를 사용해서 여러 개의 Logical… Read More »

[Vulkan Tutorial] 08-Search and Select Queue Families

목차: 01-Overview (Link)이전 글: 07-Select Physical Device (Link)다음 글: 09-Create Logical Device (Link) Queue Family? MK: 다른 글도 문제가 많을 수 있지만, 특히 Queue Family에 대한 글은 문제가 더 많을 수 있다. 정확히 Queue Family에 대한 설명만을 작성한 곳을 찾지 못하여서 여러 곳에서 작성한 내용을 조합해서 정리해보았다. Queue Family를 설명하려면 Command, Command Buffer, Queue, Queue Family 순서대로 설명을… Read More »

[Vulkan Tutorial] 07-Select Physical Device

목차: 01-Overview (Link)이전 글: 06-Create Window Surface (Link)다음 글: 08-Search and Select Queue Families (Link) 이번 장에서는 Physical GPU Device(간단히 GPU라고 할 예정)를 선택하는 코드를 작성할 차례이다. Desktop과 같이 여러 개의 GPU를 가질 수 있는 기기에서 GPU를 선택하는 과정은 다소 복잡한 과정이 필요하다. 예를 들어서 GPU가 여러 개가 있는 경우 특정 Extension을 지원하는 GPU를 선택할 수도 있고, 성능이… Read More »

[Linux-Ubuntu] 일정 주기로 CMD 실행하기 (Crontab)

실험환경: Ubuntu 18.04 Ubuntu에서 특정 CMD(명령어)를 반복적으로 실행하기 위해서 Crontab이란 리눅스 전용 작업 스케줄러를 사용하면 된다. 사용 방법은 모두 출처 1에서 참조하였다. 상세한 내용은 출처 1을 참조하면 된다. Crontab에 등록된 CMD 확인 CMD를 사용하여 현재 Crontab에 등록된 모든 CMD를 확인 할 수 있다. 아래 그림 1은 현재 등록된 CMD를 수행한 화면이다. 현재 2가지 CMD가 설정되어… Read More »

[Vulkan Tutorial] 06-Create Window Surface

목차: 01-Overview (Link)이전 글: 05-Create an Instance (Link)다음 글: 07-Select Physical Device (Link) Window Surface? 출처 1 Vulkan Tutorial에서 Window Surface 생성하는 부분이 Physical Device 선택 등의 설명 뒤에 나온다. 저의 경우 Window Surface 생성에 대한 설명을 먼저 작성하였다. 코드 작성 순서에서 Window Surface 생성이 Physical Device를 선택 전에 작성해야 하기 때문이다. 출처 1에서는 Window Surface 생성과 함께… Read More »

[Vulkan Tutorial] 05-Create an Instance

목차: 01-Overview (Link)이전 글: 04-Create Sub-Module and Base Code (Link)다음 글: 06-Create Window Surface (Link) Vulkan API를 사용해서 프로그램 작성을 시작하면 가장 먼저 Instance를 생성해야 한다. 아래 코드 1은 Instance를 생성하기 위한 코드이다. 코드 1: Instance 생성 코드 Instance는 Vulkan Library를 로딩해서 Application과 연결하는 역할을 수행한다. Instance를 생성하기 위해서는 Application에 대한 정보를 작성해서 Instance 생성에 사용한다. Application 정보를 추가하는… Read More »