섹션2-6 vulkan device 질문
안녕하세요?
Vulkan device를 통해 추상화함으로써 하드웨어 의존성을 벗어난다
-> 코드에서는 mDevice를 vkCreateDevice로 생성하는데요. Logical 한 자원이라는 말은 gpu가 여러개 있지만(예를 들어서 인텔 내장그래픽카드, amd그래픽카드가 설치됨) 각 그래픽카드 마다 vkDeviceCreateInfo를 동일하게 설정할 수 있다는 의미인가요? 동일하게 설정된 구조체로 vkCreateDevice에 넣어서 vulkan device를 만들면 pysical device는 인텔, amd로 각각 다르지만 logical device로는 똑같다는 의미일까요?
Queue Family는 그래픽카드에 queue가 여러개(강의에서는 graphics command processor, ace, dma 등)이 있다는 의미로 family이고, 큐라는 게 하드웨어 반도체 같은 건가요? 강의에서는 VK_QUEUE_GRAPHICS_BIT을 사용한 까닭은 graphics command processor라는 하드웨어 자원을 사용한다는 의미인가요?
답변 2
0
안녕하세요?
dlgmlals3님이 잘 답변해주셨습니다. 감사합니다.
제 답변을 남기면 아래와 같습니다.
먼저 vkCreateDevice로 VkDevice를 만들게 되면 인텔, 엔비디아, AMD에 상관 없이 동일한 디바이스로 생각하시면 됩니다. 좀 더 부연설명을 드리면 GPU A와 GPU B가 있다고 가정해 보겠습니다. GPU A는 특수한 기능이 있습니다. 이 경우 두 GPU를 VkPhysicalDevice로 얻어오면 디바이스의 속성이 다르게 됩니다. 왜냐하면 GPU A는 특수한 기능이 있기 때문이죠. 이때, 특수한 기능을 포기하고 VkDevice를 만들게 되면 GPU A에서 돌아가는 어플리케이션이 GPU B에서도 돌아갈 수 있게 되는 것입니다. 이렇게함으로써 하드웨어를 추상화 시키는 것이죠. 또 나중에 여러개의 GPU를 묶어서 사용할 수 있는데, Logical하게 GPU가 같다면 모든 GPU를 같은 GPU라고 생각하고 사용할 수 있는 것이죠.
그렇습니다. GPU에는 여러개의 Queue가 존재합니다. VK_QUEUE_GRAPHICS_BIT을 검사한 이유는 우리가 렌더링을 위해 기록한 커맨드를 처리할 수 있는 Queue를 선택하기 위함입니다.
감사합니다.
0
안녕하세요 지나가다가 글을 남깁니다.
1. 초기화 과정에서 물리 장치와 맵핑되는 Logical Device 미리 만들어 놓으면,
하드웨어 정보 없이도 생성해 놓은 logical device 통해 우리가
gpu의 명령을 내리기 쉽다는 의미인 것 같습니다.
계속 보시면 아시겠지만 많은 Api 파라메터에 logical device 가 들어갑니다.
c++ 클래스 인터페이스 추상화 의미와 동일 한것같네요
큐라는 것은 CPU 에서 GPU로 가는 연결 통로라고 보시면 됩니다. 추후에 커맨드버퍼를 만들어서 명령어를 큐를 통해 전송을 합니다.
큐도 종류가 있는데,
그래픽 비트가 체크가 되어있는 큐는 렌더링을 하는 명령어를 GPU로 전송할 수 있는 큐입니다.
삼각형 렌더링을 하기 위해 그래픽 비트가 마스킹된 큐를 사용하는 것입니다.
일렉트론 패키징 및 배포 관련 질문
0
109
2
MeshObject 공용 사용 방법
1
95
2
BuildBLAS 할당 리소스 사이즈
0
80
2
ConstnatBufferPool관련 질문
0
69
2
강의에서 말씀해주신대로 폴더에 넣었는데 실행이 되지않습니다
0
87
2
8)MVVM Pattern실습 + Builder Pattern +이벤트처리 방법 관련질문
0
100
2
안드로이드 에뮬레이터는 실행되는데 없다고 인식
0
190
3
Metal api 강의
0
110
2
섹션6 >> Hello color animation 과제에서 궁금한 점이 있습니다.
1
104
2
비주얼 스튜디오 파일
0
192
2
Microsoft.Maui.Controls Update후 오류발생
0
164
2
VkSubmitInfo2에 대해 질문드립니다.
0
124
2
VkImageLayout 열거형에 대해 질문드립니다.
0
136
2
예제 코드 (on_vkQueueWaitIdle)로그 관련
0
189
2
RGB 값 관련 질문드립니다.
0
127
2
vert_phong.vert negate 질문
0
124
2
glm-tri.cpp 의 glVertexAttribPointer 질문입니다.
0
160
2
vulkan 강의 일정
0
151
2
descriptorSet에 대한 질문들
0
309
2
descriptorCount 에 대한 질문
0
231
2
질문이 있습니다.
0
207
1
섹션 4-2 command pool
0
191
1
windows에서 shaderc의 빌드 실패 문제 해결방법입니다
3
461
3
코드는 어디서 얻을수있나요 ?
0
293
1





