Skip to content

Commit b872557

Browse files
authored
feat: address minor mistakes with ri renderer (#492)
* feat: address minor mistakes with ri renderer Signed-off-by: Michael Pollind <[email protected]> * feat: fix init for adapter Signed-off-by: Michael Pollind <[email protected]> --------- Signed-off-by: Michael Pollind <[email protected]>
1 parent 525f52a commit b872557

File tree

6 files changed

+18
-45
lines changed

6 files changed

+18
-45
lines changed

source/ref_nri/r_program.c

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,20 +1137,6 @@ struct pipeline_hash_s *RP_ResolvePipeline( struct glsl_program_s *program, stru
11371137
return pipeline;
11381138
}
11391139

1140-
// static NriDescriptorRangeDesc *__FindAndInsertNriDescriptorRange( const SpvReflectDescriptorBinding *binding, NriDescriptorRangeDesc **ranges)
1141-
//{
1142-
// assert(ranges);
1143-
// for( size_t i = 0; i < arrlen( *ranges ); i++ ) {
1144-
// if( ( *ranges )[i].baseRegisterIndex == binding->binding ) {
1145-
// return &( *ranges )[i];
1146-
// }
1147-
// }
1148-
//
1149-
// const size_t insertIndex = arraddnindex( (*ranges), 1 );
1150-
// memset( &( *ranges )[insertIndex], 0, sizeof( NriDescriptorRangeDesc ) );
1151-
// return &( *ranges )[insertIndex];
1152-
// }
1153-
11541140
static const struct descriptor_reflection_s *__ReflectDescriptorSet( const struct glsl_program_s *program, const struct glsl_descriptor_handle_s *handle )
11551141
{
11561142
for( size_t i = 0; i < program->numDescriptorReflections; i++ ) {

source/ref_nri/r_program.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,6 @@ struct glsl_program_s {
255255
glsl_program_stage_t stage;
256256
} shaderBin[GLSL_STAGE_MAX];
257257

258-
//NriPipelineLayout *layout;
259258
struct pipeline_hash_s {
260259
uint64_t hash;
261260
union {

source/ref_nri/r_vbo.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ mesh_vbo_t *R_CreateMeshVBO(const struct mesh_vbo_desc_s* desc)
217217
vertexBufferCreateInfo.pNext = NULL;
218218
vertexBufferCreateInfo.flags = 0;
219219
vertexBufferCreateInfo.size = vertexByteStride * desc->numVerts;
220-
vertexBufferCreateInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
220+
vertexBufferCreateInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
221221

222222
VmaAllocationInfo allocationInfo = { 0 };
223223
VmaAllocationCreateInfo allocInfo = { 0 };
@@ -239,7 +239,7 @@ mesh_vbo_t *R_CreateMeshVBO(const struct mesh_vbo_desc_s* desc)
239239
indexBufferCreateInfo.pNext = NULL;
240240
indexBufferCreateInfo.flags = 0;
241241
indexBufferCreateInfo.size = desc->numElems * sizeof( elem_t );
242-
indexBufferCreateInfo.usage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
242+
indexBufferCreateInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
243243

244244
VmaAllocationInfo allocationInfo = { 0 };
245245
VmaAllocationCreateInfo allocInfo = { 0 };

source/ref_nri/ri_renderer.c

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -235,10 +235,11 @@ int EnumerateRIAdapters( struct RIRenderer_s *renderer, struct RIPhysicalAdapter
235235

236236
R_VK_ADD_STRUCT( &features, &features11 );
237237
R_VK_ADD_STRUCT( &features, &features12 );
238+
R_VK_ADD_STRUCT( &features, &features13 );
238239

239240
VkPhysicalDevicePresentIdFeaturesKHR presentIdFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR };
240241
if( __VK_SupportExtension( extensionProperties, extensionNum, qCToStrRef( VK_KHR_PRESENT_ID_EXTENSION_NAME ) ) ) {
241-
R_VK_ADD_STRUCT( &features, &features13 );
242+
R_VK_ADD_STRUCT( &features, &presentIdFeatures );
242243
}
243244

244245
VkPhysicalDeviceMemoryProperties memoryProperties = { 0 };
@@ -252,7 +253,6 @@ int EnumerateRIAdapters( struct RIRenderer_s *renderer, struct RIPhysicalAdapter
252253
memcpy(physicalAdapter->name, properties.properties.deviceName, sizeof(properties.properties.deviceName));
253254
assert(sizeof(physicalAdapter->name) >= sizeof(properties.properties.deviceName));
254255
physicalAdapter->vendor = VendorFromID( properties.properties.vendorID );
255-
physicalAdapter->vk.physicalDevice = physicalAdapter->vk.physicalDevice;
256256
physicalAdapter->vk.apiVersion = properties.properties.apiVersion;
257257
physicalAdapter->presetLevel = RI_GPU_PRESET_NONE;
258258
// selected preset
@@ -288,7 +288,7 @@ int EnumerateRIAdapters( struct RIRenderer_s *renderer, struct RIPhysicalAdapter
288288
physicalAdapter->vk.isPresentIDSupported = presentIdFeatures.presentId;
289289
physicalAdapter->vk.isBufferDeviceAddressSupported =
290290
physicalAdapter->vk.apiVersion >= VK_API_VERSION_1_2 || __VK_SupportExtension( extensionProperties, extensionNum, qCToStrRef( VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME ) );
291-
physicalAdapter->vk.isBufferDeviceAddressSupported = __VK_SupportExtension( extensionProperties, extensionNum, qCToStrRef( VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME ) );
291+
physicalAdapter->vk.isAMDDeviceCoherentMemorySupported = __VK_SupportExtension( extensionProperties, extensionNum, qCToStrRef( VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME ) );
292292

293293
const VkPhysicalDeviceLimits *limits = &properties.properties.limits;
294294

@@ -316,14 +316,16 @@ int EnumerateRIAdapters( struct RIRenderer_s *renderer, struct RIPhysicalAdapter
316316
physicalAdapter->textureArrayLayerMaxNum = limits->maxImageArrayLayers;
317317
physicalAdapter->typedBufferMaxDim = limits->maxTexelBufferElements;
318318

319-
for( uint32_t i = 0; i < memoryProperties.memoryTypeCount; i++ ) {
320-
// const VkMemoryType& memoryType = m_MemoryProps.memoryTypes[i];
319+
for(uint32_t i = 0; i < memoryProperties.memoryHeapCount; i++) {
321320
if( ( memoryProperties.memoryHeaps[i].flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT ) != 0 && physicalAdapter->type != RI_ADAPTER_TYPE_INTEGRATED_GPU )
322321
physicalAdapter->videoMemorySize += memoryProperties.memoryHeaps[i].size;
323322
else
324323
physicalAdapter->systemMemorySize += memoryProperties.memoryHeaps[i].size;
324+
}
325+
326+
for( uint32_t i = 0; i < memoryProperties.memoryTypeCount; i++ ) {
325327
const uint32_t uploadHeapFlags = ( VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT );
326-
if( ( memoryProperties.memoryHeaps[i].flags & uploadHeapFlags ) == uploadHeapFlags )
328+
if( ( memoryProperties.memoryTypes[i].propertyFlags & uploadHeapFlags ) == uploadHeapFlags )
327329
physicalAdapter->deviceUploadHeapSize += memoryProperties.memoryHeaps[i].size;
328330
}
329331

@@ -534,6 +536,13 @@ int InitRIDevice( struct RIRenderer_s *renderer, struct RIDeviceDesc_s *init, st
534536
VkExtensionProperties *extensionProperties = malloc( extensionNum * sizeof( VkExtensionProperties ) );
535537
vkEnumerateDeviceExtensionProperties( physicalAdapter->vk.physicalDevice, NULL, &extensionNum, extensionProperties );
536538

539+
for( size_t idx = 0; idx < Q_ARRAY_COUNT( DefaultDeviceExtension ); idx++ ) {
540+
if( __VK_SupportExtension( extensionProperties, extensionNum, qCToStrRef( DefaultDeviceExtension[idx] ) ) ) {
541+
Com_Printf("Enabled Extension: %s", extensionProperties[idx].extensionName);
542+
arrpush( enabledExtensionNames, DefaultDeviceExtension[idx] );
543+
}
544+
}
545+
537546
for(size_t i = 0; i < extensionNum; i++) {
538547
Com_Printf( "VK Extension %s - %lu", extensionProperties[i].extensionName, extensionProperties[i].specVersion);
539548
}
@@ -827,12 +836,6 @@ int InitRIDevice( struct RIRenderer_s *renderer, struct RIDeviceDesc_s *init, st
827836
// }
828837

829838
vkGetPhysicalDeviceFeatures2( physicalAdapter->vk.physicalDevice, &features );
830-
for( size_t idx = 0; idx < Q_ARRAY_COUNT( DefaultDeviceExtension ); idx++ ) {
831-
if( __VK_SupportExtension( extensionProperties, extensionNum, qCToStrRef( DefaultDeviceExtension[idx] ) ) ) {
832-
Com_Printf("Enabled Extension: %s", extensionProperties[idx].extensionName);
833-
arrpush( enabledExtensionNames, DefaultDeviceExtension[idx] );
834-
}
835-
}
836839

837840
deviceCreateInfo.pNext = &features;
838841
deviceCreateInfo.pQueueCreateInfos = deviceQueueCreateInfo;

source/ref_nri/ri_resource_upload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ void RI_InitResourceUploader( struct RIDevice_s *device, struct RIResourceUpload
6565
stageBufferCreateInfo.pNext = NULL;
6666
stageBufferCreateInfo.flags = 0;
6767
stageBufferCreateInfo.size = RI_RESOURCE_STAGE_SIZE;
68-
stageBufferCreateInfo.usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
68+
stageBufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
6969
VK_WrapResult(vmaCreateBuffer(device->vk.vmaAllocator, &stageBufferCreateInfo, &allocInfo, &resource->vk.stageBuffer, &resource->vk.stageAlloc, &allocationInfo));
7070
resource->vk.pMappedData = allocationInfo.pMappedData;
7171

source/ref_nri/ri_swapchain.c

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -88,21 +88,6 @@ int InitRISwapchain( struct RIDevice_s *dev, struct RISwapchainDesc_s *init, str
8888
}
8989
}
9090
#endif
91-
{
92-
VkBool32 supported = VK_FALSE;
93-
result = vkGetPhysicalDeviceSurfaceSupportKHR(dev->physicalAdapter.vk.physicalDevice, init->queue->vk.queueFamilyIdx, swapchain->vk.surface, &supported);
94-
VK_WrapResult(result);
95-
96-
VkSurfaceCapabilitiesKHR surfaceCaps = {0};
97-
result = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(dev->physicalAdapter.vk.physicalDevice, swapchain->vk.surface, &surfaceCaps);
98-
VK_WrapResult(result);
99-
VkPhysicalDeviceSurfaceInfo2KHR surfaceInfo = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR};
100-
surfaceInfo.surface = swapchain->vk.surface;
101-
102-
result = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(dev->physicalAdapter.vk.physicalDevice, swapchain->vk.surface, &surfaceCaps);
103-
VK_WrapResult(result);
104-
}
105-
10691
uint32_t numSurfaceFormats = 0;
10792
result = vkGetPhysicalDeviceSurfaceFormatsKHR( dev->physicalAdapter.vk.physicalDevice, swapchain->vk.surface, &numSurfaceFormats, NULL );
10893
VK_WrapResult(result);

0 commit comments

Comments
 (0)