Announcement

Collapse
No announcement yet.

Geometry Shader Support Lands In RADV Vulkan Driver

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Geometry Shader Support Lands In RADV Vulkan Driver

    Phoronix: Geometry Shader Support Lands In RADV Vulkan Driver

    It's been quite a few days for the RADV Mesa Vulkan driver with receiving patches to support spilling yesterday and then today seeing new RADV patches land. Nearing the end of the day, there's now geometry shaders support on Mesa master for this open-source Vulkan driver...

    http://www.phoronix.com/scan.php?pag...ometry-Shaders

  • #2
    Is there any straightforward way to get some sense of how much of the spec is already implemented? Something like Mesa OpenGL matrix but for Mesa Vulkan? Or digging through the code is the way to do it?

    Comment


    • #3
      Originally posted by shmerl View Post
      Is there any straightforward way to get some sense of how much of the spec is already implemented? Something like Mesa OpenGL matrix but for Mesa Vulkan? Or digging through the code is the way to do it?
      Correct me if I'm wrong, but I think the VkPhysicalDeviceFeatures section that shows when you run the vulkaninfo command is a list of features supported/unsupported by your driver.

      Comment


      • #4
        Originally posted by ramrod View Post

        Correct me if I'm wrong, but I think the VkPhysicalDeviceFeatures section that shows when you run the vulkaninfo command is a list of features supported/unsupported by your driver.
        Yes, and what should I compare it to exactly? I can write some script that can perform the analysis.

        Comment


        • #5
          Originally posted by shmerl View Post

          Yes, and what should I compare it to exactly? I can write some script that can perform the analysis.
          I'm not sure what you're asking. You would only need to look at the list to determine how much of the spec is left.

          Here is mine as an example, but it's old so lastest master would show more done.
          0 = not supported yet. 1 = supported.

          VkPhysicalDeviceFeatures:
          =========================
          robustBufferAccess = 1
          fullDrawIndexUint32 = 1
          imageCubeArray = 1
          independentBlend = 1
          geometryShader = 0
          tessellationShader = 0
          sampleRateShading = 0
          dualSrcBlend = 1
          logicOp = 1
          multiDrawIndirect = 1
          drawIndirectFirstInstance = 1
          depthClamp = 1
          depthBiasClamp = 1
          fillModeNonSolid = 1
          depthBounds = 1
          wideLines = 1
          largePoints = 1
          textureCompressionETC2 = 0
          textureCompressionASTC_LDR = 0
          textureCompressionBC = 1
          occlusionQueryPrecise = 1
          pipelineStatisticsQuery = 0
          vertexSideEffects = 1
          tessellationSideEffects = 1
          geometrySideEffects = 1
          shaderImageGatherExtended = 1
          shaderStorageImageExtendedFormats = 1
          shaderStorageImageMultisample = 0
          shaderStorageImageReadWithoutFormat = 0
          shaderStorageImageWriteWithoutFormat = 0
          shaderUniformBufferArrayDynamicIndexing = 1
          shaderSampledImageArrayDynamicIndexing = 1
          shaderStorageBufferArrayDynamicIndexing = 1
          shaderStorageImageArrayDynamicIndexing = 1
          shaderClipDistance = 1
          shaderCullDistance = 1
          shaderFloat64 = 0
          shaderInt64 = 0
          shaderInt16 = 0
          shaderResourceResidency = 0
          shaderResourceMinLod = 0
          alphaToOne = 1
          sparseBinding = 0
          sparseResidencyBuffer = 0
          sparseResidencyImage2D = 0
          sparseResidencyImage3D = 0
          sparseResidency2Samples = 0
          sparseResidency4Samples = 0
          sparseResidency8Samples = 0
          sparseResidency16Samples = 0
          sparseResidencyAliased = 0
          variableMultisampleRate = 0
          inheritedQueries = 0


          Comment


          • #6
            Originally posted by shmerl View Post
            Is there any straightforward way to get some sense of how much of the spec is already implemented?
            you don't need spec whet you have two games. on the other hand in recent benchmark amd mesa opengl was 1.4 times faster than blob, while amd mesa vulkan was 1.6 times slower than blob. i.e. radeonsi is 2.2 times faster than radv

            Comment


            • #7
              Originally posted by ramrod View Post
              You would only need to look at the list to determine how much of the spec is left.

              Here is mine as an example, but it's old so lastest master would show more done.
              0 = not supported yet. 1 = supported.

              VkPhysicalDeviceFeatures:
              =========================
              robustBufferAccess = 1
              fullDrawIndexUint32 = 1
              imageCubeArray = 1
              independentBlend = 1
              geometryShader = 0
              ...
              Got it. Thanks!

              Comment


              • #8
                Originally posted by shmerl View Post

                Got it. Thanks!
                I believe some of those are intended to be used as a way of telling applications what your hardware supports, so I'm not sure it's entirely fair to use it strictly as "how far does the driver have to go".

                For example, textureCompressionASTC_LDR might always be 0 since I don't think non-mobile GPUs support ASTC in hardware. Still, I think AMD hardware should support most of the features so it's probably a decent approximation.

                Comment


                • #9
                  Michael mentions Doom now runs on radv (with wine), i thought there was still the odd bug/feature missing?

                  Comment


                  • #10
                    Originally posted by smitty3268 View Post
                    For example, textureCompressionASTC_LDR might always be 0 since I don't think non-mobile GPUs support ASTC in hardware. Still, I think AMD hardware should support most of the features so it's probably a decent approximation.
                    You could compare against what is supported for your GPU when running the command under AMDGPU Pro. Anything else is probably not something you are likely to care too much about for the moment.

                    Comment

                    Working...
                    X