Ray tracing works on linux for some reason
This commit is contained in:
@@ -271,15 +271,16 @@ void VertexData::loadMesh(MeshId id, Array<Vector> loadedPositions, Array<uint32
|
||||
// load LOD 0
|
||||
size_t previousMeshletsStart = meshlets.size(); // todo:
|
||||
loadMeshlets(id, loadedPositions, loadedIndices);
|
||||
std::memcpy(positions.data() + mesh.vertexOffset, loadedPositions.data(), loadedPositions.size() * sizeof(Vector));
|
||||
|
||||
/* const int maxLod = 25;
|
||||
/*const int maxLod = 25;
|
||||
for (int lod = 0; lod < maxLod; ++lod) {
|
||||
float tLod = lod / (float)maxLod;
|
||||
|
||||
std::span<MeshletDescription> previousLevelMeshlets =
|
||||
std::span{meshlets.data() + previousMeshletsStart, meshlets.size() - previousMeshletsStart};
|
||||
if (previousLevelMeshlets.size() <= 1) {
|
||||
return;
|
||||
break;
|
||||
}
|
||||
auto groups = groupMeshlets(previousLevelMeshlets);
|
||||
const uint32 newMeshletStart = meshlets.size();
|
||||
@@ -291,7 +292,8 @@ void VertexData::loadMesh(MeshId id, Array<Vector> loadedPositions, Array<uint32
|
||||
size_t start = groupVertexIndices.size();
|
||||
groupVertexIndices.resize(start + meshlet.primitiveIndices.size * 3);
|
||||
for (size_t j = 0; j < meshlet.primitiveIndices.size * 3; ++j) {
|
||||
groupVertexIndices[j + start] = vertexIndices[meshlet.vertexIndices.offset + primitiveIndices[meshlet.primitiveIndices.offset + j]];
|
||||
groupVertexIndices[j + start] =
|
||||
vertexIndices[meshlet.vertexIndices.offset + primitiveIndices[meshlet.primitiveIndices.offset + j]];
|
||||
}
|
||||
}
|
||||
const float threshold = 0.5f;
|
||||
@@ -316,7 +318,6 @@ void VertexData::loadMesh(MeshId id, Array<Vector> loadedPositions, Array<uint32
|
||||
}
|
||||
}
|
||||
}*/
|
||||
std::memcpy(positions.data() + mesh.vertexOffset, loadedPositions.data(), loadedPositions.size() * sizeof(Vector));
|
||||
}
|
||||
|
||||
void VertexData::removeMesh(MeshId id) {
|
||||
|
||||
@@ -801,7 +801,7 @@ void Graphics::pickPhysicalDevice() {
|
||||
shaderFloatControls = true;
|
||||
}
|
||||
}
|
||||
rayTracingEnabled = false && rayTracingPipelineSupport && accelerationStructureSupport && hostOperationsSupport && deviceAddressSupport &&
|
||||
rayTracingEnabled = rayTracingPipelineSupport && accelerationStructureSupport && hostOperationsSupport && deviceAddressSupport &&
|
||||
descriptorIndexingSupport && spirv14Support && shaderFloatControls;
|
||||
}
|
||||
|
||||
@@ -810,7 +810,7 @@ void Graphics::createDevice(GraphicsInitializer initializer) {
|
||||
vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &numQueueFamilies, nullptr);
|
||||
Array<VkQueueFamilyProperties> queueProperties(numQueueFamilies);
|
||||
vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &numQueueFamilies, queueProperties.data());
|
||||
|
||||
|
||||
Array<VkDeviceQueueCreateInfo> queueInfos;
|
||||
struct QueueCreateInfo {
|
||||
int32 familyIndex = -1;
|
||||
|
||||
Reference in New Issue
Block a user