Commit Graph

8490 Commits

Author SHA1 Message Date
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
baldurk 2ba624adb8 Save the capture settings on launch, offer button to load most recent
* This gives a one-click way to run the last capture, if it's not
  complex/regular enough to be worth saving to a settings file on its own.
* Doesn't save much if you're selecting an exe as the previous exe location is
  remembered, but if you also have command line parameters or a working
  directory it can help.
2019-01-15 10:51:31 +00:00
baldurk 145f4bdb15 Handle GL applications changing BASE_LEVEL / MAX_LEVEL dynamically
* This is the only way in GL to do rendering from one mip to another. We handle
  it and display the whole texture even if it's temporarily constricted, and
  display the mip state in the pipeline viewer.
* If the mip state is constricted at the start of the frame capture, only mips
  0..MAX will be visible at all and other mips will be assumed to not be valid.
2019-01-14 18:02:44 +00:00
baldurk 2afcd9868a Fix a case where existing root parameters could overlap with added one 2019-01-14 16:29:29 +00:00
baldurk 5ca0e50939 Fix duplicated enum definition 2019-01-14 16:27:33 +00:00
baldurk f3092b7df5 Add support for new KHR vulkan extensions
* VK_KHR_depth_stencil_resolve
* VK_KHR_shader_float16_int8
* VK_KHR_shader_float_controls
* VK_KHR_swapchain_mutable_format
2019-01-14 16:03:03 +00:00
baldurk 6508bffcda Update vulkan headers to 1.1.97 2019-01-14 16:03:02 +00:00
baldurk e56166838c Sort some enum lists that were unsorted 2019-01-14 16:03:02 +00:00
baldurk 540cb7ce29 Track eglBindAPI to see if EGL is used with desktop GL. Closes #1233 2019-01-14 13:20:00 +00:00
baldurk 992311c2da Fix shader compilation for triangle size overlay program 2019-01-14 13:20:00 +00:00
baldurk ed18828a98 If a layer isn't present on replay, it's not fatal. Refs #1237 2019-01-14 13:20:00 +00:00
baldurk 465278c996 Use typeHint as a forced view cast on vulkan 2019-01-14 13:19:59 +00:00
baldurk 44da10be06 Change SRGB to be a component type, not a ResourceFormat flag
* This allows us to have sRGB as a type hint, and better matches API format
  types.
* It's currently impossible and unlikely to ever be the case that srgb is
  applied to anything other than UNorm, so having it be independent from the
  component type was a degree of freedom that was unused.
2019-01-14 13:19:59 +00:00
baldurk d72d924c39 Fix copy-paste error on display of D3D12 ClearRTV color. Closes #1236 2019-01-14 09:57:08 +00:00
baldurk 2da62da01a Other IB/VB params in indirect call come from view in indirect data 2019-01-11 19:00:26 +00:00
baldurk 5e33353e79 Fix linux compile 2019-01-11 16:27:13 +00:00
baldurk f39be022a3 Satisfy strange Qt thread-ownership requirements around QProcess objects 2019-01-11 16:03:35 +00:00
baldurk 8b28e0ed6d Avoid doing a 0-byte glCopyBufferSubData as this can crash on AMD 2019-01-11 15:23:35 +00:00
baldurk 32dbfd6263 Fix resource usage tracking around indirect executes on D3D12 2019-01-11 15:23:04 +00:00
baldurk 5b480f968e Fix crash on D3D9 if present parameters can't be fetched 2019-01-10 15:52:41 +00:00
baldurk b1f3515090 Differentiate chunks with empty callstacks from those without callstacks
* This is a minor distinction but helps ensure that conversions to/from other
  formats are binary identical.
2019-01-10 13:54:04 +00:00
baldurk 2e9635ff63 Add tests of stringification 2019-01-10 11:51:16 +00:00
baldurk 2caeaee3d1 Output directly into gl_dispatch_table_defs.h from gen_dispatch_table.py 2019-01-10 11:51:06 +00:00
baldurk 654775bf91 MSAA textures should be displayed with a simple 2D image view 2019-01-10 11:49:58 +00:00
baldurk 2e21577c80 Use dummy image when no stencil is present for MS<->Array. Closes #1230
* We need to fill all descriptors even if the stencil is skipped dynamically in
  the shader, since we're not using VK_EXT_descriptor_indexing. Attempt to
  create a dummy UINT MSAA texture.
2019-01-10 11:49:57 +00:00
baldurk 9694e97262 Enable GL_EXT_buffer_storage extension on GLES 2019-01-10 11:49:57 +00:00
akharlamov 04ca50ba63 Adding utility code for VK code generator.
ExtObject extends the SDObject structure with helper
methods.
Intervals are used for memory region tracking.

Change-Id: I38198c0a096ed838d527b6526216fb28326ebc89
2019-01-10 09:48:33 +00:00
Remi Palandri 5aaf3b4631 fix glCreateMemoryObjectsEXT by calling the correct function 2019-01-09 23:51:52 +00:00
Remi Palandri 356ef2587d use glBufferStorageEXT instead of glBufferStorage on GLES platforms 2019-01-09 23:51:52 +00:00