From 98b8e0c809ceab84cee25389e54f3f37d220d95e Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 20 Mar 2018 17:14:12 -0400 Subject: SlangResult and small bug/typos fixes (#448) * Fixed some small typos in api-users-guide.md * Fix some small typos in slang-test/main.cpp, render-test/render-d3d11.cpp * Remove exit() calls from test code. Added Slang::Result, which works in the same way as COM HRESULT. * FIx bug introduced when moving to Slang::Result - handling E_INVALIDARG on Dx11. * Fix the testing of feature levels on Dx11 renderer. * First attempt at README.md for slang-test. * Tidied up the slang-test README.md file. * Fix some small typos in tools/slang-test/main.cpp * Fix spaces -> tabs problems. Fix some small types. --- tools/render-test/render-vk.cpp | 50 ++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'tools/render-test/render-vk.cpp') diff --git a/tools/render-test/render-vk.cpp b/tools/render-test/render-vk.cpp index fd080931d..1f8e11aa6 100644 --- a/tools/render-test/render-vk.cpp +++ b/tools/render-test/render-vk.cpp @@ -73,8 +73,11 @@ M(vkCreateShaderModule) \ /* */ + namespace renderer_test { +#define RETURN_ON_VK_FAIL(x) { VkResult _vkRes = x; if (_vkRes != VK_SUCCESS) { SLANG_RETURN_ON_FAIL(toSlangResult(_vkRes)); }} + class VKRenderer : public Renderer, public ShaderCompiler { public: @@ -101,10 +104,14 @@ public: // Renderer interface - void checkResult(VkResult result) - { - assert(result == VK_SUCCESS); - } + static SlangResult toSlangResult(VkResult res) + { + return (res == VK_SUCCESS) ? SLANG_OK : SLANG_FAIL; + } + void checkResult(VkResult result) + { + assert(result == VK_SUCCESS); + } VkBool32 handleDebugMessage( VkDebugReportFlagsEXT flags, @@ -151,22 +158,21 @@ public: flags, objType, srcObject, location, msgCode, pLayerPrefix, pMsg); } - virtual void initialize(void* inWindowHandle) override + virtual SlangResult initialize(void* inWindowHandle) override { char const* dynamicLibraryName = "vulkan-1.dll"; HMODULE vulkan = LoadLibraryA(dynamicLibraryName); if(!vulkan) { fprintf(stderr, "error: failed load '%s'\n", dynamicLibraryName); - exit(1); + return SLANG_FAIL; } vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr) GetProcAddress(vulkan, "vkGetInstanceProcAddr"); if(!vkGetInstanceProcAddr) { - fprintf(stderr, - "error: failed load symbol 'vkGetInstanceProcAddr'\n"); - exit(1); + fprintf(stderr, "error: failed load symbol 'vkGetInstanceProcAddr'\n"); + return SLANG_FAIL; } VkApplicationInfo applicationInfo = { VK_STRUCTURE_TYPE_APPLICATION_INFO }; @@ -209,10 +215,7 @@ public: FOREACH_GLOBAL_PROC(LOAD_INSTANCE_PROC); - checkResult(vkCreateInstance( - &instanceCreateInfo, - nullptr, - &instance)); + RETURN_ON_VK_FAIL(vkCreateInstance(&instanceCreateInfo, nullptr, &instance)); FOREACH_INSTANCE_PROC(LOAD_INSTANCE_PROC); @@ -227,18 +230,16 @@ public: debugCreateInfo.pUserData = this; debugCreateInfo.flags = debugFlags; - checkResult(vkCreateDebugReportCallbackEXT( - instance, &debugCreateInfo, nullptr, &debugReportCallback)); + RETURN_ON_VK_FAIL(vkCreateDebugReportCallbackEXT(instance, &debugCreateInfo, nullptr, &debugReportCallback)); #endif uint32_t physicalDeviceCount = 0; - checkResult(vkEnumeratePhysicalDevices( - instance, &physicalDeviceCount, nullptr)); + RETURN_ON_VK_FAIL(vkEnumeratePhysicalDevices(instance, &physicalDeviceCount, nullptr)); VkPhysicalDevice* physicalDevices = (VkPhysicalDevice*)alloca( physicalDeviceCount * sizeof(VkPhysicalDevice)); - checkResult(vkEnumeratePhysicalDevices( + RETURN_ON_VK_FAIL(vkEnumeratePhysicalDevices( instance, &physicalDeviceCount, physicalDevices)); uint32_t selectedDeviceIndex = 0; @@ -293,7 +294,7 @@ public: deviceCreateInfo.enabledExtensionCount = sizeof(deviceExtensions) / sizeof(deviceExtensions[0]); deviceCreateInfo.ppEnabledExtensionNames = &deviceExtensions[0]; - checkResult(vkCreateDevice( + RETURN_ON_VK_FAIL(vkCreateDevice( physicalDevice, &deviceCreateInfo, nullptr, &device)); #define LOAD_DEVICE_PROC(NAME) NAME = (PFN_##NAME) vkGetDeviceProcAddr(device, #NAME); @@ -306,7 +307,7 @@ public: commandPoolCreateInfo.queueFamilyIndex = queueFamilyIndex; commandPoolCreateInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; - checkResult(vkCreateCommandPool( + RETURN_ON_VK_FAIL(vkCreateCommandPool( device, &commandPoolCreateInfo, nullptr, &commandPool)); vkGetDeviceQueue( @@ -317,6 +318,8 @@ public: // set up swap chain + + // create command buffers // depth/stencil? @@ -329,9 +332,9 @@ public: -// create semaphores for sync - + // create semaphores for sync + return SLANG_OK; } float clearColor[4]; @@ -349,8 +352,9 @@ public: { } - virtual void captureScreenShot(char const* outputPath) override + virtual SlangResult captureScreenShot(char const* outputPath) override { + return SLANG_FAIL; } virtual ShaderCompiler* getShaderCompiler() override -- cgit v1.2.3