분류 전체보기
2024.08.08 운동일지
2024.08.08 운동일지
2024.08.08웨이트 30분 + 유산소 30분
[Vulkan] Vulkan Pipeline barrier
[Vulkan] Vulkan Pipeline barrier
2024.08.08목차 Vulkan Pipeline barrier 잘못된 Vulkan Pipeline barrier 사용으로 인해 발생하는 문제 예시들 Vulkan Pipeline barrier란? Vulkan Pipeline barrier는 Pipeline stage 내에서 리소스 접근 순서, 리소스 상태 전환을 제어하는 동기화 메커니즘이다. Vulkan Pipeline barrier를 사용해서 Vulkan Image layout을 변경할 수 있다. VkImageMemoryBarrier 구조체 typedef struct VkImageMemoryBarrier { VkStructureType sType; const void* pNext; VkAccessFlags..
[Vulkan] Vulkan Image Layer
[Vulkan] Vulkan Image Layer
2024.08.08목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Vulkan Image LayerVulkan Image Layer을 배우는 주된 목적 중 하나는 Validation Error 해결 때문이다. 에러 메시지 에러 메시지VUID-vkCmdClearColorImage-imageLayout-01394: imageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL orVK_IMAGE_LAYOUT_GENERAL 해결 방안Image Layout을 이들 중 하나로 변경한 후에 vkCmdClearColorIm..
[백준 2098번 C/C++] 외판원 순회
[백준 2098번 C/C++] 외판원 순회
2024.08.08[백준 2098번 C/C++] 외판원 순회 https://www.acmicpc.net/problem/2098 해결전략 비트마스킹 Bitmasking동적계획법 Dynamic Programming, DP비트필드를 이용한 다이나믹 프로그래밍 외판원 순회 문제 정답 코드 #include #include #include using namespace std;int n; // 도시의 수vector> W; vector> dp;const int INF = 2147000000;int TSP(int cur, int visited){ // visited의 모든 비트가 1이라면(즉, 모든 도시를 방문했다면), 현재 도시에서 시작 도시로 돌아가는 비용을 반환 if (visited == (1 > n; W.res..
2024.08.07 운동일지
2024.08.07 운동일지
2024.08.07등+팔 웨이트 1시간
2024.08.06 운동일지
2024.08.06 운동일지
2024.08.07다리운동 1시간
[Vulkan] Vulkan Fence
[Vulkan] Vulkan Fence
2024.08.07목차 Vulkan Fence Vulkan Fence를 사용하는 이유는? VUID-vkAcquireNextImageKHR-semaphore-01780: semaphore and fence must not both be equal to VK_NULL_HANDLE 위의 에러 메시지는, ' vkAcquireNextImageKHR 호출 시 Semaphore와 Fence 중 하나 이상이 VK_NULL_HANDLE이 아니어야 한다 '는 메시지다. Vulkan Fence를 사용하면 Validation Error를 해결할 수 있다. Vulkan Fence란? 작업의 완료를 Host(CPU)에서 확인할 수 있게 하는 동기화 객체다. Vulkan Fence는 두가지 상태, Signal 상태, Unsignal ..
[Vulkan] 화면에 색 출력하기
[Vulkan] 화면에 색 출력하기
2024.08.07목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! 화면에 색 출력하기 화면에 단색 출력하기 Vulkan Swapchain의 Vulkan Image를 단색으로 초기화한다.Command를 기록하기 위해 Vulkan Command buffer를 Recording 상태로 변경한다.Vulkan Swapchain의 Vulkan Image를 단색으로 클리어하는 Command를 기록한다.Vulkan Command buffer의 기록을 끝마친다. 상태는 Executable다.Vulkan Command buffer를 Vulkan Queue에 제출한다.제출된 Vulkan Command buffer가 처리될 때까지 기다린다..
[백준 14391번 C/C++] 종이 조각
[백준 14391번 C/C++] 종이 조각
2024.08.07[백준 14391번 C/C++] 종이 조각 https://www.acmicpc.net/problem/14391 해결전략 비트마스킹 Bitmasking 정답코드 #include #include #include using namespace std;int n, m;int answer = 0;vector> v;int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; v.resize(n, vector(m)); for (int y = 0; y > c; v[y][x] = c - '0'; // 문자를 숫자로 변환 } } // Rule 정하기: 0이면 세로, 1이..
[Vulkan] Command buffer
[Vulkan] Command buffer
2024.08.06목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Command buffer Command buffer란? Vulkan Command buffer는 Command를 기록하는데 사용되는 객체다.Command는 무언가를 그리거나 계산하기 위해 필요한 모든 행동을 의미한다. Vulkan Command buffer 생명 주기 Vulkan Command buffer는 내부적으로 생명 주기를 가지고 있다.초기 상태는 Initial이며, VkQueue에 제출하기 위해서는 Executable 상태여야 한다. Initial Command buffer가 할당되고 아직 어떠한 Command도 기록되지 않은 상태R..
[Vulkan] Command Pool
[Vulkan] Command Pool
2024.08.06목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Command Pool Vulkan Command pool이란? Vulkan Command buffer를 할당하고 관리하는 객체다.Vulkan Command pool은 특정 Queue family에 바인딩된다.Vulkan Command pool은 스레드 안정성이 보장되지 않아 스레드마다 생성해야 한다.Vulkan은 최대한 오버헤드를 줄이기 위해 설계되었다스레드 안정을 보장하는 것은 동기화 비용을 발생시키기 때문에, Vulkan의 경우 개발자가 명시적으로 Command Pool의 동기화를 직접 관리하게 했다. 이렇게 명시적으로 관리함으로써 더 효율적인..
[백준 15661번 C++] 링크와 스타트
[백준 15661번 C++] 링크와 스타트
2024.08.06[백준 15661번 C++] 링크와 스타트 https://www.acmicpc.net/problem/15661 해결전략비트마스킹 Bitmasking백트래킹 Backtracking 정답코드 - 비트 마스킹 #include #include #include using namespace std;int n; // 팀의 인원 수int answer = 987654321;vector> v;int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; v.resize(n, vector(n)); for (int y = 0; y > v[y][x]; } } // 모든 가능한 팀 조합을 비트마스크로 생성 for (unsigned int bitmask..