diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 091193fd2db..3062bdd8de8 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -947,7 +947,7 @@ v3dv_GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, .fullDrawIndexUint32 = false, /* Only available since V3D 4.4.9.1 */ .imageCubeArray = true, .independentBlend = true, - .geometryShader = false, + .geometryShader = true, .tessellationShader = false, .sampleRateShading = true, .dualSrcBlend = false, @@ -974,7 +974,7 @@ v3dv_GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, .pipelineStatisticsQuery = false, .vertexPipelineStoresAndAtomics = true, .fragmentStoresAndAtomics = true, - .shaderTessellationAndGeometryPointSize = false, + .shaderTessellationAndGeometryPointSize = true, .shaderImageGatherExtended = false, .shaderStorageImageExtendedFormats = true, .shaderStorageImageMultisample = false, @@ -1243,11 +1243,11 @@ v3dv_GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, .maxTessellationEvaluationOutputComponents = 0, /* Geometry limits */ - .maxGeometryShaderInvocations = 0, - .maxGeometryInputComponents = 0, - .maxGeometryOutputComponents = 0, - .maxGeometryOutputVertices = 0, - .maxGeometryTotalOutputComponents = 0, + .maxGeometryShaderInvocations = 32, + .maxGeometryInputComponents = 64, + .maxGeometryOutputComponents = 64, + .maxGeometryOutputVertices = 256, + .maxGeometryTotalOutputComponents = 1024, /* Fragment limits */ .maxFragmentInputComponents = max_varying_components, diff --git a/src/broadcom/vulkan/v3dv_uniforms.c b/src/broadcom/vulkan/v3dv_uniforms.c index db575426a68..7b1f3ed01c2 100644 --- a/src/broadcom/vulkan/v3dv_uniforms.c +++ b/src/broadcom/vulkan/v3dv_uniforms.c @@ -39,17 +39,16 @@ /* Our Vulkan resource indices represent indices in descriptor maps which * include all shader stages, so we need to size the arrays below - * accordingly. For now we only support a maximum of 2 stages for VS and - * FS. + * accordingly. For now we only support a maximum of 3 stages: VS, GS, FS. */ -#define MAX_STAGES 2 +#define MAX_STAGES 3 #define MAX_TOTAL_TEXTURE_SAMPLERS (V3D_MAX_TEXTURE_SAMPLERS * MAX_STAGES) struct texture_bo_list { struct v3dv_bo *tex[MAX_TOTAL_TEXTURE_SAMPLERS]; }; -/* This tracks state BOs forboth textures and samplers, so we +/* This tracks state BOs for both textures and samplers, so we * multiply by 2. */ #define MAX_TOTAL_STATES (2 * V3D_MAX_TEXTURE_SAMPLERS * MAX_STAGES)