Commit Graph

286 Commits

Author SHA1 Message Date
baldurk 723c293414 Update vulkan headers and implement VK_EXT_tooling_info. Closes #1632 2019-12-09 16:46:26 +00:00
baldurk 6d1d302491 Fix a number of warnings identified by higher clang warning levels
* We enable a couple of high signal-to-noise warnings in all clang builds
2019-12-02 20:41:28 +00:00
baldurk 289e159072 Add padding to struct definitions in shaders, for better formatting 2019-11-29 13:53:45 +00:00
baldurk 77b5c391e9 Check that we handle padding and alignment around structs
* On all APIs structs are aligned up to 16-byte alignment, and on D3D as with
  arrays then elements coming after the struct can be packed into the padding
  after the last struct element.
2019-11-29 13:53:44 +00:00
baldurk b16dda9d4a Update to vulkan headers 1.1.129
* Expand handling for EXT_buffer_device_address to cover
  KHR_buffer_device_address
2019-11-27 16:14:40 +00:00
baldurk 24c0b018ea Fix types used for non-uint types in GL_Texture_Zoo test 2019-11-27 12:06:25 +00:00
baldurk f7e5199cf4 Clamp out-of-bounds undefined results for resinfo 2019-11-27 11:02:25 +00:00
baldurk 31c962bf51 Free undefined image in VK_Image_layouts test
* The free() function should also destroy the image/buffer not just free the
  memory.
2019-11-26 23:42:16 +00:00
baldurk 279a2ec69d Add texture zoo tests
* These tests ensure that texture rendering works correctly for all different
  types of texture types, and for all formats, across different APIs, including
  across a remote-proxy connection.
2019-11-26 17:38:27 +00:00
baldurk db563bb0bf Refactor public interface around handling of textures
* Subresource handling is more consistent - we pass around a struct now that
  contains the array slice, mip level, and sample. We remove the concept of
  'MSAA textures count samples as extra slices within the real slices' and
  internalise that completely. This also means we have a consistent set
  everywhere that we need to refer to a subresource.
* Functions that used to be in the ReplayOutput and use a couple of implicit
  parameters from the texture viewer configuration are now in the
  ReplayController and take them explicitly. This includes GetMinMax,
  GetHistogram, and PickPixel.
* Since these functions aren't ReplayOutput relative, if you want to decode the
  custom shader texture or the overlay texture you need to pass that ID
  directly.
2019-11-26 17:38:25 +00:00
baldurk c547937597 Add helpers for tests checking PCI vendorIDs/driver versions 2019-11-25 23:36:45 +00:00
baldurk f35e082228 Keep track of VmaAllocation for each image/buffer and free it
* VMA requires us to free each suballocation even on shutdown where we just want
  to block-free
2019-11-25 23:36:44 +00:00
baldurk 284996ae2c Check for errors on queue submissions 2019-11-25 23:36:44 +00:00
baldurk b222d6388c Don't flush bufinfo/resinfo opcodes
* The input miplevel is an integer even if the outputs are floats. The outputs
  won't be denormal as they're dimensions etc.
2019-11-22 15:08:16 +00:00
baldurk 9de4931213 Don't ever flush immediate values in shader debugging
* We assume that fxc won't output a denormalised float in the bytecode, and this
  prevents us from flushing integer inputs to otherwise flushable float-type
  operations
2019-11-22 14:59:18 +00:00
baldurk ce124cbc2e Add sensible defaults for depth-stencil state in vulkan helpers 2019-11-22 14:56:51 +00:00
baldurk 187b1a6e47 Add ability to pass macros to SPIR-V compilation in tests 2019-11-22 14:56:51 +00:00
baldurk 53569e56bb Allow AllocatedBuffer/AllocatedImage to be copied around in vulkan tests
* Instead of tracking their lifetime with that object, we move the lifetime
  tracking into the parent VulkanGraphicsTest and destroy them all at the end. A
  single handle can optionally be free'd on its own.
2019-11-22 14:56:51 +00:00
baldurk 4458ab3205 Remove assumptions that captures are always frames
* Previously we had "Frame X" and "Start of Frame" hardcoded in the event
  browser, and the end of frame was in many cases assumed to be a present call.
  However with the in-application API this is not necessarily true.
* Presents are now serialised separately in all APIs and displayed wherever they
  happen in the frame, and if there is no present at the end of the frame an
  "End of Capture" marker is inserted. Similarly API-defined captures are not
  given a potentially misleading frame number.
2019-11-21 17:09:01 +00:00
baldurk e353fd1a00 Fix WARP use on D3D12 2019-11-20 22:58:08 +00:00
baldurk aa7c2170b9 Add D3D12 test command line parameter to enable GPUVA 2019-11-20 18:53:00 +00:00
baldurk ff309d8c54 Add helpers for setting markers on D3D12 2019-11-20 18:53:00 +00:00
baldurk 1cd0f0b5e2 Add helpful check for making repro cases 2019-11-20 18:53:00 +00:00
baldurk dedd3e83fa Fix '--gpu warp' specifier in tests 2019-11-20 18:53:00 +00:00
baldurk bda6066737 Allow specifying rasterized stream for creating geom shaders 2019-11-20 18:53:00 +00:00
baldurk b6c9b6298f Only read pImmutableSamplers pointer for sampler descriptors 2019-10-28 11:17:54 +00:00
baldurk 273a87e606 Fix calculation of array byte stride for structs with padding in DXBC
* Instead of summing the members offsets, we set it to the offset of the last
  member plus the last member's size.
2019-10-25 18:29:30 +01:00
baldurk c40c97558a Add helper to set wide-string name on objects 2019-10-25 18:29:30 +01:00
baldurk 85b7f88737 Don't throw an error when specifying unused view parameters 2019-10-25 18:29:30 +01:00
baldurk 43432a4650 Add D3D11 test helper for setting rasterizer state 2019-10-24 18:02:54 +01:00
baldurk cc0a539364 Set window title from test name 2019-10-24 18:02:54 +01:00
baldurk 3a2a89d10a Add test of D3D12's WriteToSubresource 2019-10-24 18:02:54 +01:00
baldurk 1530bc6499 Let tests know if they're being run in debug mode
* This will let us do extra logging or dumping data we don't want to do on a
  real run
2019-10-24 18:02:54 +01:00
baldurk 0559bfffd4 Test cbuffers with huge spaces on D3D12 2019-10-24 18:02:54 +01:00
baldurk 1eae20cad3 Add test of exporting/importing capture with a large number of buffers 2019-10-24 18:02:54 +01:00
baldurk e00d2e28c5 Enforce that all tests are unique (to avoid copy-paste problems) 2019-10-24 18:02:53 +01:00
baldurk fef94ef012 Add more tests of raw/structured buffer debugging 2019-10-24 18:02:53 +01:00
baldurk 16dace3d48 Fix tests running on 32-bit 2019-10-01 17:59:01 +01:00
baldurk aed3d5fe4f Add naming overload for VkSampler in tests 2019-09-30 16:30:40 +01:00
baldurk 812e601a88 Ignore sampler updates when descset has immutable samplers. Closes #1528 2019-09-23 16:48:04 +01:00
baldurk c67995b85a Make it easier to run tests from within UI 2019-09-20 11:20:45 +01:00
baldurk 40375a6d6e Ensure all values are used and unstripped in GL_Vertex_Attr_Zoo 2019-09-18 15:28:12 +01:00
baldurk 612963bb11 Fix GL shader editing shader to not use uninitialised data 2019-09-18 14:16:28 +01:00
baldurk f8221d858d Ensure we don't hide an invalid buffer value that truncates to green 2019-09-18 13:55:27 +01:00
baldurk f415ba00bf Add missing binding for cbuffer 2019-09-18 13:55:11 +01:00
baldurk 35fec3f29e Fix shutdown order for GL test context & window 2019-09-18 13:30:58 +01:00
baldurk 9a99696593 Explicitly request alpha channel for GL test backbuffer 2019-09-18 13:15:38 +01:00
baldurk a237200cef Fix NULL being included in marker in D3D12 test 2019-09-18 11:18:38 +01:00
baldurk 8060693188 Fix byte address buffer access in shader debugging 2019-09-17 14:08:48 +01:00
baldurk 6d282f90d9 rename TEST macro to un-confused visual assist
* Visual assist comes with a pre-defined interpretation of TEST() for
  googletest, which conflicts with ours. We can't seem to override it with a
  va_stdafx.h even
2019-09-17 12:40:00 +01:00