Commit Graph

8481 Commits

Author SHA1 Message Date
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
baldurk 6eb4289a90 Fix missing override specifiers in Catch appveyor listener 2019-01-09 17:08:31 +00:00
baldurk d265a14a45 Change renderdoccmd to be a console program on windows.
* This means it outputs natively/properly to stdout/stderr and its output can be
  redirected with pipes.
* It does mean we need to be very careful whenever it's run internally to not
  pop up a command window, which happens by default.
2019-01-09 16:27:15 +00:00
baldurk 150e6527ad If a texture is typeless then account for type hint when pixel picking 2019-01-09 16:27:15 +00:00
baldurk 277ba1399c Don't fetch structured counts for non-buffer UAVs 2019-01-09 16:27:15 +00:00
baldurk 48d6e94891 Fix D3D11InitialContents overloads so wrong types don't get cast
* ID3D11DeviceChild* is too broad and can accept a RTV or DSV if there's a bug.
2019-01-09 16:27:15 +00:00
baldurk 21e056e5b8 Fix stringification of bitfields with duplicate values
* We'd previously subtract the bitfield value twice, leading to underflow and
  then lots of unknown bits appear to be set. Instead we should clear the bit so
  that it's safe to apply multiple times.
2019-01-09 16:27:15 +00:00
baldurk 7ad3197982 Revamp catch appveyor reporter to report all test results in a batch
* We also only report one test per test-case, as trying to handle sections
  separately is unreliable.
2019-01-09 16:27:15 +00:00
baldurk 22f8b2ac79 Specify original Vk*Flags in structured data instead of coerced FlagBits
* We coerce the type to the FlagBits enum for serialisation so the
  stringification picks up the bits properly. However the variable is properly
  typed as just 'Flags' which is a uint32_t typedef, so manually specify its
  typename afterwards.
2019-01-09 16:27:14 +00:00
tabi.katalin d19a495ee0 Handle launching more apps on Android
We can check whether an Android app has already been connected to RenderDoc, and warn the user to close the previous app before launching a new one.
2019-01-09 16:27:00 +00:00