feat: push constants + UBO descriptor sets — rotating triangle with VP matrix
- Push constants: rotation angle (float) sent to vertex shader via vkCmdPushConstants - UBO + descriptor sets: VP matrix (mat4) in uniform buffer, bound via VkDescriptorSet - New Vulkan functions: vkCreateDescriptorSetLayout, vkCreateDescriptorPool, vkAllocateDescriptorSets, vkUpdateDescriptorSets, vkCmdBindDescriptorSets, vkCmdPushConstants - New structs: VkPushConstantRange, VkDescriptorSetLayoutBinding, VkDescriptorSetLayoutCreateInfo, VkDescriptorPoolCreateInfo, VkDescriptorPoolSize, VkDescriptorSetAllocateInfo, VkWriteDescriptorSet, VkDescriptorBufferInfo - Per-frame UBO buffers (HOST_VISIBLE|HOST_COHERENT, 64 bytes each) - Perspective projection + look-at camera (static, no ECS yet) - Cleaned up debug logging in VulkanContext - Zero validation errors
This commit is contained in:
@@ -241,12 +241,13 @@ internal sealed unsafe class VulkanContext : IDisposable
|
||||
var nameLen = Array.IndexOf(nameBytes, (byte)0);
|
||||
if (nameLen < 0) nameLen = 256;
|
||||
var devType = (VkPhysicalDeviceType)Marshal.ReadInt32((nint)propsBytes, 16);
|
||||
Console.WriteLine($"[Vulkan] GPU {i}: {System.Text.Encoding.UTF8.GetString(nameBytes, 0, nameLen)} (type={devType})");
|
||||
var gpuName = System.Text.Encoding.UTF8.GetString(nameBytes, 0, nameLen);
|
||||
|
||||
if (best.Handle == 0 || (devType == VkPhysicalDeviceType.DiscreteGpu && bestType != VkPhysicalDeviceType.DiscreteGpu))
|
||||
{
|
||||
best = devices[(int)i];
|
||||
bestType = devType;
|
||||
Console.WriteLine($"[Vulkan] Selected GPU: {gpuName} (type={devType})");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -373,7 +374,6 @@ internal sealed unsafe class VulkanContext : IDisposable
|
||||
SurfaceColorSpace = formats[0].colorSpace;
|
||||
}
|
||||
|
||||
Console.WriteLine($"[Vulkan] Surface format: {SurfaceFormat}, color space: {SurfaceColorSpace}");
|
||||
}
|
||||
|
||||
public uint FindMemoryType(uint memoryTypeBits, VkMemoryPropertyFlags desiredFlags)
|
||||
|
||||
Reference in New Issue
Block a user