vk/pipeline: Be more sloppy about shader entrypoint names
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 22 Jul 2015 22:26:53 +0000 (15:26 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 22 Jul 2015 22:26:56 +0000 (15:26 -0700)
The CTS passes in NULL names right now.  It's not too hard to support that
as just "main".  With this, and a patch to vulkancts, we now pass all 6
tests.

src/vulkan/anv_pipeline.c

index 817b644eefb8858ae06f420914945794c2184123..5aeacefddf673d6cbc7a8899ab7fefc5f94d78ad 100644 (file)
@@ -79,9 +79,10 @@ VkResult anv_CreateShader(
    assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_SHADER_CREATE_INFO);
    assert(pCreateInfo->flags == 0);
 
-   size_t name_len = strlen(pCreateInfo->pName);
+   const char *name = pCreateInfo->pName ? pCreateInfo->pName : "main";
+   size_t name_len = strlen(name);
 
-   if (strcmp(pCreateInfo->pName, "main") != 0) {
+   if (strcmp(name, "main") != 0) {
       anv_finishme("Multiple shaders per module not really supported");
    }
 
@@ -91,7 +92,7 @@ VkResult anv_CreateShader(
       return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
 
    shader->module = module;
-   memcpy(shader->entrypoint, pCreateInfo->pName, name_len + 1);
+   memcpy(shader->entrypoint, name, name_len + 1);
 
    *pShader = anv_shader_to_handle(shader);