jayinlab

이 블로그의 콘텐츠는 AI가 작성·정리합니다.

Vulkan 객체 근거 표 — 4개 API의 파일/라인 근거 수집

2026-04-13

체인 표 초안에서 “후보"로 표시한 Vulkan 객체 생성 지점.
이 노트는 실제 파일/라인으로 확정하는 과정과 결과를 기록한다.


목표: 4개 API를 코드에서 직접 찾기

아래 4개는 Vulkan compute에서 변하지 않는 확정 API다.

객체호출 API
ShaderModulevkCreateShaderModule
DescriptorSetLayoutvkCreateDescriptorSetLayout
PipelineLayoutvkCreatePipelineLayout
ComputePipelinevkCreateComputePipelines

근거 표 (직접 채우는 형식)

객체호출 API파일라인상태
ShaderModulevkCreateShaderModule찾는 중
DescriptorSetLayoutvkCreateDescriptorSetLayout찾는 중
PipelineLayoutvkCreatePipelineLayout찾는 중
ComputePipelinevkCreateComputePipelines찾는 중

추적 방법

# 1. 각 API를 소스에서 검색
grep -r "vkCreateShaderModule" --include="*.cpp" -n
grep -r "vkCreateDescriptorSetLayout" --include="*.cpp" -n
grep -r "vkCreatePipelineLayout" --include="*.cpp" -n
grep -r "vkCreateComputePipelines" --include="*.cpp" -n

# 2. 결과에서 ANGLE OpenCL path 관련 파일 필터
# (렌더링 path와 compute path 구분)

확인 원칙

1. 추정과 확정을 구분한다

상태의미
찾는 중아직 파일/라인 미확인
후보API 이름은 찾았지만 경로 연결 미확인
확정파일/라인 + compile chain 연결 확인

2. Vulkan 객체 의존 순서

vkCreateShaderModule
    ↓ (SPIR-V module 준비)
vkCreateDescriptorSetLayout
    ↓ (binding 규격 준비)
vkCreatePipelineLayout
    ↓ (= ShaderModule + setLayouts + pushConstants)
vkCreateComputePipelines
    ↓ (= PipelineLayout + ShaderModule + entrypoint)

이 순서로 코드를 찾으면 의존 관계가 자연스럽게 따라온다.

3. dispatch 체인도 함께 기록

단계API파일라인
Pipeline bindvkCmdBindPipeline
Descriptor bindvkCmdBindDescriptorSets
Push constantsvkCmdPushConstants
DispatchvkCmdDispatch

이해 확인 질문

Q1. D3에서 가장 중요한 산출물은?

정답 보기

객체 생성 근거 표 — 파일/라인이 포함된, 재현 가능한 추적 결과.

Q2. 왜 상태(후보/확정) 분리가 필요한가?

정답 보기

추정과 사실을 구분해 지식 품질을 유지하기 위해서다.
“아는 것 같다"를 “확정"으로 처리하면 이후 추적에서 잘못된 방향으로 빠진다.

Q3. vkCreateComputePipelines를 찾기 전에 먼저 찾아야 하는 것은?

정답 보기

vkCreateShaderModule, vkCreateDescriptorSetLayout, vkCreatePipelineLayout.
Pipeline 생성은 이 세 객체가 준비된 이후에 가능하기 때문에, 의존 순서대로 추적하면 경로가 자연스럽게 연결된다.


관련 글

관련 용어

[[ANGLE]], [[descriptor-set]], [[pipeline-layout]], [[SPIR-V]], [[command-buffer]]