Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
f5ad281
template n comp shader
rarepng May 28, 2025
d287a5e
random
rarepng May 30, 2025
93000cf
messy
rarepng Jun 1, 2025
e2ab585
half
rarepng Jun 4, 2025
5371c29
compute particles test
rarepng Jun 9, 2025
67103dc
compute particles test 2 & cleanup
rarepng Jun 9, 2025
d34f5f2
fix depth buffer
rarepng Jun 12, 2025
70c5a6f
empty
rarepng Jun 12, 2025
786b50e
namespace framebuffer
rarepng Jun 15, 2025
697e41e
idk
rarepng Jun 21, 2025
4829579
pre_update
rarepng Jun 26, 2025
cdcd33b
moving pools
rarepng Jun 28, 2025
b615201
moving pools 2
rarepng Jun 28, 2025
7265ba0
moving pools
rarepng Jun 29, 2025
04578bb
moving pools
rarepng Jun 29, 2025
5091b6d
moving pools
rarepng Jun 29, 2025
2685e2a
moving pools
rarepng Jun 30, 2025
0ea6aeb
Merge pull request #5 from rarepng/pool
rarepng Jun 30, 2025
e6bab08
adding static pipeline
rarepng Jun 30, 2025
25d36ad
adding static pipeline
rarepng Jun 30, 2025
5ba1c59
adding static pipeline
rarepng Jul 2, 2025
2b0ecf3
adding static pipeline
rarepng Jul 3, 2025
b80b86d
Merge pull request #6 from rarepng/unskinned
rarepng Jul 3, 2025
d9f632c
cmake 4.0 ci
rarepng Jul 3, 2025
a3771c7
cmake slang
rarepng Jul 3, 2025
0558b65
ci slang
rarepng Jul 3, 2025
bbfedbe
ci slang
rarepng Jul 3, 2025
731aea6
ci slang
rarepng Jul 3, 2025
eb7c105
ci slang
rarepng Jul 3, 2025
6ee8d38
ci slang
rarepng Jul 3, 2025
03bcf3a
ci slang
rarepng Jul 3, 2025
0776c05
ci slang
rarepng Jul 3, 2025
ad63837
ci slang
rarepng Jul 3, 2025
8a8e143
ci slang
rarepng Jul 3, 2025
4464900
ci slang
rarepng Jul 3, 2025
ff7c3ad
ci slang
rarepng Jul 4, 2025
1d370f4
ci slang
rarepng Jul 4, 2025
38efe64
ci slang
rarepng Jul 6, 2025
753e1aa
ci slang
rarepng Jul 6, 2025
8013d3f
Update cmake_win.yml
rarepng Jul 6, 2025
5ac6817
ci slang
rarepng Jul 7, 2025
9013b83
ci slang
rarepng Jul 7, 2025
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
59 changes: 52 additions & 7 deletions .github/workflows/cmake_lnx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,21 @@ jobs:
submodules: true
fetch-depth: 0

- name: installing cmake 4
run: |
sudo apt-get remove --purge -y cmake
wget https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-4.0.3-linux-x86_64.sh
chmod +x cmake-4.0.3-linux-x86_64.sh
sudo ./cmake-4.0.3-linux-x86_64.sh --skip-license --prefix=/usr/local
- name: downloading latest slang
run: |
url=$(curl -s https://api.github.com/repos/shader-slang/slang/releases/latest | jq -r '.assets[] | select(.name | endswith("linux-x86_64.tar.gz")) | .browser_download_url')
mkdir -p ~/slang && curl -L "$url" | tar -xz -C ~/slang
ls ~/slang
~/slang/bin/slangc -v
sudo cp -v -f ~/slang/bin/* /usr/local/bin
sudo cp -v -f ~/slang/lib/* /usr/local/lib
sudo ldconfig
- name: update submodules
run: |
git submodule update --init --recursive
Expand All @@ -43,22 +58,52 @@ jobs:
mv $(ls | head -n 1)/x86_64/* .
rm -r $(ls | head -n 1)
export VULKAN_SDK=/home/runner/vulk
export PATH=$VULKAN_SDK/bin:$PATH
export LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH
export PATH=~/slang/bin:$VULKAN_SDK/bin:$PATH
export LD_LIBRARY_PATH=~/slang/lib:$VULKAN_SDK/lib:$LD_LIBRARY_PATH
export VK_ICD_FILENAMES=$VULKAN_SDK/etc/vulkan/icd.d
export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d
echo VULKAN_SDK=/home/runner/vulk >> $GITHUB_ENV
echo PATH=$VULKAN_SDK/bin:$PATH >> $GITHUB_ENV
echo LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH >> $GITHUB_ENV
echo PATH=~/slang/bin:$VULKAN_SDK/bin:$PATH >> $GITHUB_ENV
echo VK_ICD_FILENAMES=$VULKAN_SDK/etc/vulkan/icd.d >> $GITHUB_ENV
echo VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d >> $GITHUB_ENV
echo LD_LIBRARY_PATH=/home/runner/work/rview2/rview2/lib:$LD_LIBRARY_PATH >> $GITHUB_ENV
echo LD_LIBRARY_PATH=~/slang/lib:/home/runner/work/rview2/rview2/lib:$VULKAN_SDK/lib:$LD_LIBRARY_PATH >> $GITHUB_ENV
sudo ldconfig
- name: verifying vulkan
# - name: downloading latest slang AGAIN
# run: |
# url=$(curl -s https://api.github.com/repos/shader-slang/slang/releases/latest | jq -r '.assets[] | select(.name | endswith("linux-x86_64.tar.gz")) | .browser_download_url')
# mkdir -p ~/slang && curl -L "$url" | tar -xz -C ~/slang
# ls ~/slang
# ~/slang/bin/slangc -v
# i give up,..
- name: verifying vulkan & slang AGAIN!!
run: |
url=$(curl -s https://api.github.com/repos/shader-slang/slang/releases/latest | jq -r '.assets[] | select(.name | endswith("linux-x86_64.tar.gz")) | .browser_download_url')
mkdir -p ~/slang2 && curl -L "$url" | tar -xz -C ~/slang2
ls ~/slang2
~/slang2/bin/slangc -v
~/slang/bin/slangc -v
mkdir -p $VULKAN_SDK/bin
cp -n /home/runner/vulk/bin/slangc $VULKAN_SDK/bin/slangc
sudo rm -rf $VULKAN_SDK/bin/slangc
sudo cp -v -f ~/slang/bin/* $VULKAN_SDK/bin
sudo cp -v -f ~/slang/bin/slangc $VULKAN_SDK/bin/slangc
sudo cp -v -f ~/slang2/bin/* $VULKAN_SDK/bin
sudo cp -v -f ~/slang2/bin/slangc $VULKAN_SDK/bin/slangc
echo "\n"
$VULKAN_SDK/bin/slangc -v
echo "\n"
slangc -v
echo "\n"
~/slang/bin/slangc -v
~/slang2/bin/slangc -v
echo "\n"
which slangc
echo "\n"
ls -lah ~/slang/bin/slangc
ls -lah ~/slang2/bin/slangc
ls -lah $VULKAN_SDK/bin/slangc
md5sum ~/slang2/bin/slangc
md5sum ~/slang/bin/slangc
md5sum $VULKAN_SDK/bin/slangc
- name: downloading resources
run: |
mkdir /home/runner/work/rview2/rview2/resources
Expand Down
21 changes: 16 additions & 5 deletions .github/workflows/cmake_win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,18 @@ jobs:
# curl -L "https://github.com/openssl/openssl/releases/download/openssl-3.5.0/openssl-3.5.0.tar.gz" | tar -xz #doesnt work on runner
pwsh -c 'curl -L "https://github.com/openssl/openssl/releases/download/openssl-3.5.0/openssl-3.5.0.tar.gz" -o ossl.tar.gz'
tar -xvzf ossl.tar.gz
$url = curl -L "https://api.github.com/repos/shader-slang/slang/releases/latest" | ConvertFrom-Json | ForEach-Object { $_.assets } | Where-Object { $_.name -like "*windows-x86_64.tar.gz" } | Select-Object -ExpandProperty browser_download_url
mkdir D:/a/slang
cd D:/a/slang
curl -L $url -o slang.tar.gz
ls
pwd
7z x slang.tar.gz -aoa
ls
7z x slang.tar -aoa
ls
# rm slang.tar.gz
# rm slang.tar
- shell: msys2 {0}
run: |
cd /d/a/rview2/rview2/openssl-3.5.0
Expand All @@ -64,20 +76,19 @@ jobs:
./sdk.exe --root D:/a/vulk --accept-licenses --default-answer --confirm-command install
rm sdk.exe
$env:VULKAN_SDK="D:/a/vulk"
$env:PATH="$env:VULKAN_SDK/bin;$env:PATH"
$env:LD_LIBRARY_PATH="$env:VULKAN_SDK/lib;$env:LD_LIBRARY_PATH"
$env:SLANG_SDK="D:/a/slang"
$env:PATH="$env:SLANG_SDK/bin;$env:VULKAN_SDK/bin;$env:PATH"
$env:LD_LIBRARY_PATH="D:/a/work/rview2/rview2/lib;$env:SLANG_SDK/lib;$env:VULKAN_SDK/lib;$env:LD_LIBRARY_PATH"
$env:VK_ICD_FILENAMES="$env:VULKAN_SDK/etc/vulkan/icd.d"
$env:VK_LAYER_PATH="$env:VULKAN_SDK/etc/vulkan/explicit_layer.d"
$env:LD_LIBRARY_PATH="D:/a/work/rview2/rview2/lib;$env:LD_LIBRARY_PATH"
echo VULKAN_SDK=$env:VULKAN_SDK | tee -a $env:GITHUB_ENV
echo PATH=$env:PATH | tee -a $env:GITHUB_ENV
echo LD_LIBRARY_PATH=$env:LD_LIBRARY_PATH | tee -a $env:GITHUB_ENV
echo VK_ICD_FILENAMES=$env:VULKAN_SDK/etc/vulkan/icd.d | tee -a $env:GITHUB_ENV
echo VK_LAYER_PATH=$env:VULKAN_SDK/etc/vulkan/explicit_layer.d | tee -a $env:GITHUB_ENV
echo LD_LIBRARY_PATH=$env:LD_LIBRARY_PATH | tee -a $env:GITHUB_ENV
- name: verifying vulkan
run: |
powershell -c "$env:VULKAN_SDK/bin/glslc --version"
pwsh -c "$env:VULKAN_SDK/bin/glslc --version"
echo $VULKAN_SDK
ls -r $VULKAN_SDK
- name: downloading resources
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
build
build_static
build_corrupted
cmake_more_cache
resources
vsbuild
Expand All @@ -17,4 +18,3 @@ dist
.vscode
*.swp
out
# .gitmodules
78 changes: 48 additions & 30 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.31)
cmake_minimum_required(VERSION 4.0)
project(rview2 LANGUAGES CXX)


include(ExternalProject)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
Expand Down Expand Up @@ -173,36 +173,55 @@ endif()
file(GLOB shaders ${PROJECT_BINARY_DIR}/shaders/*)
list(LENGTH shaders shader_len)

#wip
file(GLOB_RECURSE GLSL_SOURCE_FILES
# "${PROJECT_SOURCE_DIR}/shaders/*.frag"
# "${PROJECT_SOURCE_DIR}/shaders/*.vert"
"${PROJECT_SOURCE_DIR}/shaders/*.slang"
)
foreach(GLSL ${GLSL_SOURCE_FILES})
# get_filename_component(GLSL_EXT "${GLSL}" EXT)
# if(GLSL_EXT STREQUAL ".frag")
# set(SLANG_STAGE "fragment")
# elseif(GLSL_EXT STREQUAL ".vert")
# set(SLANG_STAGE "vertex")
# elseif(GLSL_EXT STREQUAL ".comp")
# set(SLANG_STAGE "compute")
# endif()
file(TO_CMAKE_PATH "${GLSL}" GLSL_NATIVE)
cmake_path(GET GLSL_NATIVE FILENAME SPIRV_NAME)
set(VXSPIRV "${PROJECT_BINARY_DIR}/shaders/${SPIRV_NAME}.vx.spv")
set(PXSPIRV "${PROJECT_BINARY_DIR}/shaders/${SPIRV_NAME}.px.spv")
# #wip
# file(GLOB_RECURSE GLSL_SOURCE_FILES
# # "${PROJECT_SOURCE_DIR}/shaders/*.frag"
# # "${PROJECT_SOURCE_DIR}/shaders/*.vert"
# "${PROJECT_SOURCE_DIR}/shaders/*.slang"
# )
# foreach(GLSL ${GLSL_SOURCE_FILES})
# # get_filename_component(GLSL_EXT "${GLSL}" EXT)
# # if(GLSL_EXT STREQUAL ".frag")
# # set(SLANG_STAGE "fragment")
# # elseif(GLSL_EXT STREQUAL ".vert")
# # set(SLANG_STAGE "vertex")
# # elseif(GLSL_EXT STREQUAL ".comp")
# # set(SLANG_STAGE "compute")
# # endif()
# file(TO_CMAKE_PATH "${GLSL}" GLSL_NATIVE)
# cmake_path(GET GLSL_NATIVE FILENAME SPIRV_NAME)
# set(VXSPIRV "${PROJECT_BINARY_DIR}/shaders/${SPIRV_NAME}.vx.spv")
# set(PXSPIRV "${PROJECT_BINARY_DIR}/shaders/${SPIRV_NAME}.px.spv")
# add_custom_command(
# OUTPUT ${VXSPIRV}
# OUTPUT ${PXSPIRV}
# COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/shaders"
# # COMMAND ${SHELL_CMD} -c "$ENV{VULKAN_SDK}/bin/slangc -default-downstream-compiler glsl glslang -lang glsl -entry main $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage ${SLANG_STAGE} -matrix-layout-row-major -target spirv -capability SPIRV_1_6 ${GLSL_NATIVE} -o ${SPIRV}" DEPENDS ${GLSL_NATIVE}
# COMMAND ${SHELL_CMD} -c "$ENV{VULKAN_SDK}/bin/slangc -entry vxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage vertex -target spirv -capability SPIRV_1_6 ${GLSL_NATIVE} -o ${VXSPIRV}" DEPENDS ${GLSL_NATIVE}
# COMMAND ${SHELL_CMD} -c "$ENV{VULKAN_SDK}/bin/slangc -entry pxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage pixel -target spirv -capability SPIRV_1_6 ${GLSL_NATIVE} -o ${PXSPIRV}" DEPENDS ${GLSL_NATIVE}
# )
# list(APPEND SPIRV_BINARY_FILES ${VXSPIRV})
# list(APPEND SPIRV_BINARY_FILES ${PXSPIRV})
# endforeach()
# set_source_files_properties(${SPIRV_BINARY_FILES} PROPERTIES GENERATED TRUE)
# add_custom_target(shaders ALL DEPENDS ${SPIRV_BINARY_FILES})
# add_dependencies(rview2 shaders)

#manually adding shaders for now
add_custom_command(
OUTPUT ${VXSPIRV}
OUTPUT ${PXSPIRV}
OUTPUT ${PROJECT_BINARY_DIR}/shaders/vx.spv ${PROJECT_BINARY_DIR}/shaders/px.spv ${PROJECT_BINARY_DIR}/shaders/cx.spv ${PROJECT_BINARY_DIR}/shaders/pvx.spv ${PROJECT_BINARY_DIR}/shaders/ppx.spv ${PROJECT_BINARY_DIR}/shaders/pcx.spv
COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/shaders"
# COMMAND ${SHELL_CMD} -c "$ENV{VULKAN_SDK}/bin/slangc -default-downstream-compiler glsl glslang -lang glsl -entry main $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage ${SLANG_STAGE} -matrix-layout-row-major -target spirv -capability SPIRV_1_6 ${GLSL_NATIVE} -o ${SPIRV}" DEPENDS ${GLSL_NATIVE}
COMMAND ${SHELL_CMD} -c "$ENV{VULKAN_SDK}/bin/slangc -entry vxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage vertex -target spirv -capability SPIRV_1_6 ${GLSL_NATIVE} -o ${VXSPIRV}" DEPENDS ${GLSL_NATIVE}
COMMAND ${SHELL_CMD} -c "$ENV{VULKAN_SDK}/bin/slangc -entry pxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage pixel -target spirv -capability SPIRV_1_6 ${GLSL_NATIVE} -o ${PXSPIRV}" DEPENDS ${GLSL_NATIVE}
COMMAND ${SHELL_CMD} -c "slangc -entry vxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage vertex -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/gen.slang -o ${PROJECT_BINARY_DIR}/shaders/vx.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/gen.slang
COMMAND ${SHELL_CMD} -c "slangc -entry pxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage pixel -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/gen.slang -o ${PROJECT_BINARY_DIR}/shaders/px.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/gen.slang
# COMMAND ${SHELL_CMD} -c "$ENV{VULKAN_SD/bin/slangc -entry cxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage compute -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/gen.slang -o ${PROJECT_BINARY_DIR}/shaders/cx.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/gen.slang
COMMAND ${SHELL_CMD} -c "slangc -entry vxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage vertex -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/static.slang -o ${PROJECT_BINARY_DIR}/shaders/svx.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/static.slang
COMMAND ${SHELL_CMD} -c "slangc -entry pxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage pixel -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/static.slang -o ${PROJECT_BINARY_DIR}/shaders/spx.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/static.slang
# COMMAND ${SHELL_CMD} -c "$ENV{VULKAN_SD/bin/slangc -entry cxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage compute -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/static.slang -o ${PROJECT_BINARY_DIR}/shaders/scx.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/static.slang
COMMAND ${SHELL_CMD} -c "slangc -entry vxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage vertex -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/particle.slang -o ${PROJECT_BINARY_DIR}/shaders/pvx.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/particle.slang
COMMAND ${SHELL_CMD} -c "slangc -entry pxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage pixel -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/particle.slang -o ${PROJECT_BINARY_DIR}/shaders/ppx.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/particle.slang
COMMAND ${SHELL_CMD} -c "slangc -entry cxmain $<$<CONFIG:Debug>:-g> $<$<CONFIG:Release>:-O3> -stage compute -target spirv -capability SPIRV_1_6 ${PROJECT_SOURCE_DIR}/shaders/particle.slang -o ${PROJECT_BINARY_DIR}/shaders/pcx.spv" DEPENDS ${PROJECT_SOURCE_DIR}/shaders/particle.slang
)
list(APPEND SPIRV_BINARY_FILES ${VXSPIRV})
list(APPEND SPIRV_BINARY_FILES ${PXSPIRV})
endforeach()
list(APPEND SPIRV_BINARY_FILES ${PROJECT_BINARY_DIR}/shaders/vx.spv ${PROJECT_BINARY_DIR}/shaders/px.spv ${PROJECT_BINARY_DIR}/shaders/cx.spv ${PROJECT_BINARY_DIR}/shaders/pvx.spv ${PROJECT_BINARY_DIR}/shaders/ppx.spv ${PROJECT_BINARY_DIR}/shaders/pcx.spv)
set_source_files_properties(${SPIRV_BINARY_FILES} PROPERTIES GENERATED TRUE)
add_custom_target(shaders ALL DEPENDS ${SPIRV_BINARY_FILES})
add_dependencies(rview2 shaders)
Expand Down Expand Up @@ -311,7 +330,6 @@ target_link_libraries(rview2
absl_log_internal_structured_proto
absl_log_severity
absl_log_sink
absl_low_level_hash
absl_malloc_internal
absl_periodic_sampler
absl_poison
Expand Down
94 changes: 94 additions & 0 deletions include/buffer/ssbo.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#pragma once
#include <glm/glm.hpp>
#include <vector>
#include <vulkan/vulkan.h>

#include "core/rvk.hpp"

namespace ssbo {
static inline bool init(rvk &objs, ssbodata &ssboData, size_t buffersize) {

VkBufferCreateInfo bufferInfo{};
bufferInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
bufferInfo.size = buffersize;
bufferInfo.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT;

VmaAllocationCreateInfo vmaAllocInfo{};
vmaAllocInfo.usage = VMA_MEMORY_USAGE_AUTO;
vmaAllocInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT;

if (vmaCreateBuffer(objs.alloc, &bufferInfo, &vmaAllocInfo, &ssboData.buffer, &ssboData.alloc, nullptr) !=
VK_SUCCESS) {
return false;
}




VkDescriptorSetAllocateInfo descriptorAllocateInfo{};
descriptorAllocateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
descriptorAllocateInfo.descriptorPool = objs.dpools[rvk::idxinitpool];
descriptorAllocateInfo.descriptorSetCount = 1;
descriptorAllocateInfo.pSetLayouts = &rvk::ssbolayout;

if (vkAllocateDescriptorSets(objs.vkdevice.device, &descriptorAllocateInfo, &ssboData.dset) != VK_SUCCESS) {
return false;
}

VkDescriptorBufferInfo ssboInfo{};
ssboInfo.buffer = ssboData.buffer;
ssboInfo.offset = 0;
ssboInfo.range = buffersize;

VkWriteDescriptorSet writeDescriptorSet{};
writeDescriptorSet.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
writeDescriptorSet.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
writeDescriptorSet.dstSet = ssboData.dset;
writeDescriptorSet.dstBinding = 0;
writeDescriptorSet.descriptorCount = 1;
writeDescriptorSet.pBufferInfo = &ssboInfo;

vkUpdateDescriptorSets(objs.vkdevice.device, 1, &writeDescriptorSet, 0, nullptr);

ssboData.size = buffersize;

return true;
}

static inline bool createlayout(rvk &core,VkDescriptorSetLayout& dlayout){
VkDescriptorSetLayoutBinding ssboBind{};
ssboBind.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
ssboBind.binding = 0;
ssboBind.descriptorCount = 1;
ssboBind.pImmutableSamplers = nullptr;
ssboBind.stageFlags = VK_SHADER_STAGE_VERTEX_BIT;

VkDescriptorSetLayoutCreateInfo ssboCreateInfo{};
ssboCreateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
ssboCreateInfo.bindingCount = 1;
ssboCreateInfo.pBindings = &ssboBind;

if (vkCreateDescriptorSetLayout(core.vkdevice.device, &ssboCreateInfo, nullptr, &dlayout) != VK_SUCCESS) {
return false;
}
return true;
}
// template <typename T>
// concept vectoradjacent = requires(T x){
// {x.size()} -> std::convertible_to<size_t>;
// {x.data()};
// };
template <typename T>
static inline void upload(const rvk &objs, const ssbodata &ssbodata, const std::vector<T> &mats) {
if (mats.size() <= 0) {
return;
}
void *data;
vmaMapMemory(objs.alloc, ssbodata.alloc, &data);
std::memcpy(data, mats.data(), ssbodata.size);
vmaUnmapMemory(objs.alloc, ssbodata.alloc);
}
static inline void cleanup(rvk &objs, ssbodata &ssbodata) {
vmaDestroyBuffer(objs.alloc, ssbodata.buffer, ssbodata.alloc);
}
};
8 changes: 0 additions & 8 deletions include/commandbuffer.hpp

This file was deleted.

8 changes: 0 additions & 8 deletions include/commandpool.hpp

This file was deleted.

Loading