Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions examples/vulkan/CarControlDemo/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <chrono>
#include <cmath>
#include <cstdlib>
#include <filesystem>
#include <memory>
#include <string>
#include <vector>
Expand All @@ -15,6 +16,7 @@
#include "VulkanCommandBuffer.h"
#include "VulkanDynamicRendering.h"
#include "VulkanImage.h"
#include "VulkanPipelineCache.h"
#include "VulkanSwapChain.h"
#include "VulkanSync.h"
#include "VulkanUtils.h"
Expand Down Expand Up @@ -126,9 +128,15 @@ int main() {
render_finished_semaphores.push_back(std::make_unique<core::vulkan::VulkanSemaphore>(&context));
}

core::vulkan::VulkanPipelineCache pipeline_cache(
&context, std::filesystem::path(PIPELINE_CACHE_DIR) / "car_control_demo.cache");
skybox->SetPipelineCache(&pipeline_cache);
ground->SetPipelineCache(&pipeline_cache);
car->SetPipelineCache(&pipeline_cache);
skybox->Init(kSkyboxFacePaths);
ground->Init(kGroundTexturePath);
car->Init();
pipeline_cache.Save();

auto last_time = std::chrono::high_resolution_clock::now();

Expand Down
9 changes: 9 additions & 0 deletions examples/vulkan/FPSShooterDemo/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <chrono>
#include <cmath>
#include <cstdlib>
#include <filesystem>
#include <memory>
#include <string>
#include <vector>
Expand All @@ -17,6 +18,7 @@
#include "VulkanCommandBuffer.h"
#include "VulkanDynamicRendering.h"
#include "VulkanImage.h"
#include "VulkanPipelineCache.h"
#include "VulkanSwapChain.h"
#include "VulkanSync.h"
#include "VulkanUtils.h"
Expand Down Expand Up @@ -137,10 +139,17 @@ int main() {
render_finished_semaphores.push_back(std::make_unique<core::vulkan::VulkanSemaphore>(&context));
}

core::vulkan::VulkanPipelineCache pipeline_cache(
&context, std::filesystem::path(PIPELINE_CACHE_DIR) / "fps_shooter_demo.cache");
floor->SetPipelineCache(&pipeline_cache);
targets->SetPipelineCache(&pipeline_cache);
bullets->SetPipelineCache(&pipeline_cache);
gun->SetPipelineCache(&pipeline_cache);
floor->Init();
targets->Init();
bullets->Init();
gun->Init(kGunTexturePath, kGunModelPath);
pipeline_cache.Save();

auto last_time = std::chrono::high_resolution_clock::now();

Expand Down
7 changes: 7 additions & 0 deletions examples/vulkan/PhysicsDemo/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include <chrono>
#include <cstdlib>
#include <filesystem>
#include <memory>
#include <vector>

Expand All @@ -13,6 +14,7 @@
#include "VulkanCommandBuffer.h"
#include "VulkanDynamicRendering.h"
#include "VulkanImage.h"
#include "VulkanPipelineCache.h"
#include "VulkanSwapChain.h"
#include "VulkanSync.h"
#include "VulkanUtils.h"
Expand Down Expand Up @@ -111,8 +113,13 @@ int main() {
render_finished_semaphores.push_back(std::make_unique<core::vulkan::VulkanSemaphore>(&context));
}

core::vulkan::VulkanPipelineCache pipeline_cache(
&context, std::filesystem::path(PIPELINE_CACHE_DIR) / "physics_demo.cache");
floor->SetPipelineCache(&pipeline_cache);
cube->SetPipelineCache(&pipeline_cache);
floor->Init();
cube->Init();
pipeline_cache.Save();

auto last_time = std::chrono::high_resolution_clock::now();

Expand Down
16 changes: 16 additions & 0 deletions tests/vulkan/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,19 @@ target_include_directories(vulkan_gaussian_benchmark PRIVATE
${CMAKE_CURRENT_BINARY_DIR}/shaders)
add_dependencies(vulkan_gaussian_benchmark vulkan_shaders)
target_link_libraries(vulkan_gaussian_benchmark PRIVATE mat vulkan)

add_executable(vulkan_pipeline_cache_benchmark
benchmarks/PipelineCacheBenchmark.cpp
ComputeGaussianBlur/ComputeGaussianBlur.cpp
ComputeSum/ComputeSum.cpp
Roofline/ComputeCopy.cpp
Roofline/ComputeFma.cpp
${PROJECT_SOURCE_DIR}/examples/vulkan/ComputeBarycentricRasterizer/ComputeBarycentric.cpp)
target_include_directories(vulkan_pipeline_cache_benchmark PRIVATE
ComputeGaussianBlur
ComputeSum
Roofline
${PROJECT_SOURCE_DIR}/examples/vulkan/ComputeBarycentricRasterizer
${CMAKE_CURRENT_BINARY_DIR}/shaders)
add_dependencies(vulkan_pipeline_cache_benchmark vulkan_shaders vulkan_rasterizer_test_shader)
target_link_libraries(vulkan_pipeline_cache_benchmark PRIVATE mat vulkan)
8 changes: 8 additions & 0 deletions tests/vulkan/PipelineCacheProbe.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#version 450

layout(location = 0) in vec2 uv;
layout(location = 0) out vec4 color;

void main() {
color = vec4(uv, 0.25, 1.0);
}
9 changes: 9 additions & 0 deletions tests/vulkan/PipelineCacheProbe.vert
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#version 450

layout(location = 0) out vec2 uv;

void main() {
const vec2 positions[3] = vec2[](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0));
uv = positions[gl_VertexIndex] * 0.5 + 0.5;
gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
}
Loading
Loading