Commit Graph

8518 Commits

Author SHA1 Message Date
baldurk 19c7af5e35 Don't delete program before we try to print the link errors 2019-02-01 18:32:11 +00:00
baldurk 5854810fd4 Make timeouts in tests more forgiving for CI that occasionally fails 2019-02-01 18:32:11 +00:00
nmr8 38f68e1534 Update Dependencies.md 2019-01-30 09:25:02 +00:00
nmr8 54efa30596 Add debian dependencies, spoon feed build commands 2019-01-30 09:25:02 +00:00
baldurk bca706a96b Increase maximum wait time for program to start to 1 second. Refs #1243 2019-01-29 10:45:49 +00:00
baldurk e70dd127f3 Use bindpoint mapping when looking up read-write resources on GL 2019-01-28 19:55:40 +00:00
baldurk 0f7cacc4ee Custom shader objects are not programs, use right delete function 2019-01-28 19:55:40 +00:00
baldurk 542f664645 Fix missing register swizzles on relative addressing lookups 2019-01-28 19:55:40 +00:00
baldurk 76e42a1a2a Make sure to correctly identify removed buffer in GPUAddress mapping
* When multiple buffers are aliased over the same heap memory, they'll have the
  same GPU base address. Our mapping needs to ensure it removes the right entry
  when a resource is released.
2019-01-28 19:55:39 +00:00
baldurk 3e843351e7 Handle ExecuteIndirect setting a GPU_VA of 0
* I don't know if this is valid or not, but it seems to work without triggering
  any validation layer warnings or errors which is the best guess.
2019-01-28 19:55:39 +00:00
baldurk 317e89f7cb Add QIODevice::Text for text writing, to convert newlines. Refs #1246 2019-01-28 19:55:39 +00:00
baldurk f8d575d2d1 Don't leak programs when separable patching fails 2019-01-28 19:55:39 +00:00
baldurk a154ca5cb9 Fix wrong enum being used in GL overlay for MSAA textures 2019-01-28 19:55:39 +00:00
baldurk f8962abe21 Fix handling of BASE_LEVEL/MAX_LEVEL on texture types that don't have it 2019-01-28 19:55:39 +00:00
baldurk 09c1c8efdb Don't call GetBaseFormat on compressed texture format 2019-01-28 19:55:38 +00:00
baldurk 1d0a9926b7 Fix error message referring to incorrect argument 2019-01-24 19:07:46 +00:00
baldurk 4839d6bee4 Never force gamma when displaying overlay texture 2019-01-24 19:07:46 +00:00
baldurk bbaff6f575 Don't try to reflect non-existant tessellation/geometry shaders 2019-01-24 13:21:21 +00:00
baldurk 4bded8be29 Add missing GL_DYNAMIC_STORAGE_BIT specifiers in GL_Buffer_Updates test 2019-01-24 13:21:03 +00:00
baldurk 4f230ab625 Ensure we sync GPU work before destroying an output window on D3D12 2019-01-24 11:33:52 +00:00
baldurk 465c114ce0 Check for errors when creating replay D3D12 command list 2019-01-24 11:28:12 +00:00
baldurk 69a76bfb41 Use ASCII name for duration column in draw list export. Refs #1246 2019-01-24 10:15:36 +00:00
baldurk 953661fc81 Add missing commas in string name of vkCmdClearAttachments 2019-01-23 18:36:39 +00:00
baldurk 604854b87c On D3D12 and Vulkan start first frame capture on API init. Closes #1195
* On GL/D3D11 we delay the start of the 'first frame' until a swapchain has been
  created for D3D11, or an attribs-created context has been created for GL. This
  makes it more useful and doesn't fire when creating devices/contexts for
  enumeration or trampolining.
* On Vulkan/D3D12 the first device that's created is useful, so we can start
  capturing immediately once it's available.
2019-01-23 16:19:43 +00:00
baldurk 35f7273379 Fix missing egl functions in eglGetProcAddress, use hook set macro 2019-01-23 14:41:03 +00:00
baldurk 0f8573d4a5 Enable VK_AMD_shader_core_properties on replay if it's available
* This extension is used by GPA
2019-01-23 13:45:18 +00:00
baldurk 7044754065 Update GPUPerfAPI to 3.3 2019-01-23 13:44:18 +00:00
baldurk ae3a6da6bd Use shader declared register array sizes to clamp descriptor tables
* When a descriptor table is unbounded in the root signature we don't want to
  pass potentially multiple 100k descriptors through just because they're
  technically available.
* Instead use the declared array size of the last register in the space (since a
  descriptor table in the RS might correspond to multiple HLSL variables) to
  limit which registers are actually available, which is possibly orders of
  magnitude less.
2019-01-23 12:33:18 +00:00
baldurk b0a694df46 Fix case fall-through when making string name for ETC2 2019-01-23 11:39:21 +00:00
baldurk 017b291b18 Install newer libstdc++-dev package in linux build scripts
* Older ones like 4.9 that was used originally didn't fully support C++11.
2019-01-23 09:33:34 +00:00
baldurk f50ba1272f Add missing explicit include for <type_traits> 2019-01-23 09:32:51 +00:00
baldurk eb5c416130 Reserve space up front when fetching resources on Vulkan/D3D12 2019-01-22 18:51:54 +00:00
baldurk 3f8e2e7f99 Change the check for when copyRange/destroyRange can be trivially done
* Even if a struct isn't trivial (e.g. it contains a constructor) it can still
  be trivially copyable (just POD with memcpy), or trivially destructable (with
  no destructor). Make sure we don't fall back to slower copies/destroys for
  this case as it's relatively common.
2019-01-22 18:48:07 +00:00
baldurk 9443423389 Don't do expensive string work for resource rows that are hidden 2019-01-22 18:02:14 +00:00
baldurk eeae73042c Don't serialise map data writes on D3D12 if we've baked to cached buffer
* When we have a cached buffer that already has the map contents, reserialising
  the byte buffer is pointless as we don't use it for anything.
* The serialise involves allocating a buffer, memcpy'ing it, then freeing it
  which can add up for large map writes.
2019-01-22 17:46:23 +00:00
baldurk f2253404f7 Add test that verifies postvs data is correct with separable GS shaders 2019-01-22 16:56:04 +00:00
baldurk 0cee61558a Mention the index when some PostVS data doesn't match ref data in test 2019-01-22 16:55:39 +00:00
baldurk f140cd9669 Handle shader-program created shaders in GL post-vs fetch. Closes #1244 2019-01-22 16:40:52 +00:00
baldurk d64ad19f16 Add an optional timeout to Socket::AcceptClient
* This is needed since sometimes on tests a localhost socket won't immediately
  be available to accept()
2019-01-17 17:51:07 +00:00
baldurk 5d9d77f361 Expand GL buffer updates test to check various combinations of updates 2019-01-17 11:50:09 +00:00
baldurk 7a6e74d158 Refactor GL persistent mapped buffer handling to be more usable
* We now take a more vulkan-like approach, by forcing READ_BIT on for
  buffers/maps that are coherent, and leaving it alone while idle. During
  capture we do the same memcmp & save updates as before.
* This is signifcantly faster while idle, though still slow to capture due to
  the number of sync points in GL (per draw). Roughly scales with O(m*n) where m
  = number of bytes of memory coherently mapped and n = number of draws in a
  frame.
2019-01-17 11:49:41 +00:00
baldurk 7957ef4a33 Fix display string name for ETC texture formats. Closes #1239
* EAC has a four-component version, GL_COMPRESSED_RGBA8_ETC2_EAC /
  GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC.
* ETC2 has a version with 1-bit alpha.
2019-01-17 10:31:12 +00:00
baldurk 07dbadc0bc Remove unneeded common v2f code 2019-01-16 16:49:08 +00:00
baldurk 3a064eda7b Fix GL_Mip_Gen_RT test 2019-01-16 16:48:10 +00:00
baldurk f395f244eb Add initial contents and dirtying for high-frequency samplers
* For samplers that are updated a lot we fall back to fetching & applying their
  state as initial contents.
2019-01-16 13:47:56 +00:00
baldurk adbf24da77 Use latest set of shaders attached to program for initial states
* If multiple shaders are attached to a program only use the latest set as they
  override anything that came before.
2019-01-16 13:23:40 +00:00
baldurk 27a4353ffa Fix out of date python use in documentation examples 2019-01-16 12:38:10 +00:00
baldurk c4f1062cdd Don't trash state of uniform buffer offset & size in GLPushPopState 2019-01-16 12:02:30 +00:00
baldurk 62a5e6e8bd Error if an unsupported device extension is used. Refs #1238 2019-01-15 13:40:57 +00:00
baldurk 26d35d4214 Pass pLayerName correctly when enumerating device extensions
* We want to enumerate extensions from the right source, and also only add our
  own added extensions if pLayerName == NULL.
2019-01-15 13:40:22 +00:00