summaryrefslogtreecommitdiffstats
path: root/tools/render-test/render-vk.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2018-03-20 17:14:12 -0400
committerTim Foley <tfoleyNV@users.noreply.github.com>2018-03-20 14:14:12 -0700
commit98b8e0c809ceab84cee25389e54f3f37d220d95e (patch)
tree7df9954689a6a727c39997c944c86003ce9018c0 /tools/render-test/render-vk.cpp
parent72562144254145612c68534c6b7457764c28acf5 (diff)
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.
Diffstat (limited to 'tools/render-test/render-vk.cpp')
-rw-r--r--tools/render-test/render-vk.cpp50
1 files changed, 27 insertions, 23 deletions
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