Commit Graph

3076 Commits

Author SHA1 Message Date
baldurk 074eab464f Update to latest header (2016-05-07) with VK_EXT_debug_marker extension 2016-05-07 09:59:10 +02:00
baldurk 6437137aba [Coverity] Fix uninitialised members in replay API structures 2016-05-06 23:15:42 +02:00
baldurk 2486936742 Remove assert that fires often when descriptor sets are unbound 2016-05-05 16:15:31 +02:00
baldurk 5361654bbf Add problems noticed during reading to debug messages list 2016-05-05 16:15:31 +02:00
baldurk 38cb1d796a Use the right (updated during reading) set of descriptor sets 2016-05-05 16:11:43 +02:00
baldurk 396e31850a Get the proper filename for windows callstacks (currently unused) 2016-05-05 15:44:21 +02:00
baldurk 188779e298 Add debug message catching & serialising to all relevent chunks
* i.e. any chunk that could actually become an EID and where we can get
  the debug messages before serialising (which excludes vkUnmapMemory)
2016-05-05 15:44:21 +02:00
baldurk d200af4995 Re-arrange draw functions so draw, dispatch, copy, clear are together 2016-05-05 15:44:20 +02:00
baldurk 6d73a12118 Rearrange some code for tidiness 2016-05-05 15:44:20 +02:00
baldurk 774340edf5 Save debug messages per-call in per-thread storage and serialise out
* In each entry point we declare a local variable that stays in scope
  while we call the real function, in the report callback we fill it up
  with any messages, then when serialising that function we save those
  messages and on replay restore it out and filter it all back up.
2016-05-05 15:44:19 +02:00
baldurk b3114bd21d Modify vkCreateInstance requested extensions to add DEBUG_REPORT
* This only happens if we have DebugDeviceMode enabled, but it lets us
  listen to anything the validation layers report.
2016-05-05 12:45:22 +02:00
baldurk c1651e6362 Process capture options when first setting env vars for vulkan 2016-05-04 22:11:53 +02:00
baldurk 274dbcd4ef Remove unnecessary double-calls of OnLogfileLoaded(). Refs #267 2016-05-04 21:52:31 +02:00
baldurk abca888524 Make sure to add WSI extensions needed for replay - app may not use WSI 2016-05-04 21:00:21 +02:00
baldurk 75b2f9e8a0 Make sure there's a log line at minimum whenever an API is initialised 2016-05-03 22:52:15 +02:00
baldurk 4f61d27821 Don't advance attribs pointer until after checking for profile bit 2016-05-03 00:34:01 +02:00
baldurk cda850ea51 Ensure frame counter has sane values even if Present() isn't called
* This means when someone has no swapchain and is doing off-screen
  rendering, the frame number won't just stick at 0, but it will at
  least be 1 for the first capture, 2 for the second, etc.
2016-05-02 00:51:00 +02:00
baldurk d98c29b1d5 [Coverity] Fix some duplicate defects that I didn't notice 2016-05-01 15:24:39 +02:00
baldurk faa385647d [Coverity] Fix some possible NULL-pointer dereferences 2016-05-01 14:40:02 +02:00
baldurk 40fef75750 [Coverity] Rejig converted argv/argc into vector<string> to free memory 2016-05-01 14:37:50 +02:00
baldurk bdee617d80 [Coverity] Fix some resource leaks 2016-05-01 14:37:28 +02:00
baldurk e2d2ff80e3 [Coverity] Fix mismatched size (bytes vs. wchars) 2016-05-01 14:27:51 +02:00
baldurk 2d3c79c86e [Coverity] Fix resource leaks in pdblocate 2016-05-01 14:27:13 +02:00
baldurk 855c7179b7 Only filter & print debug messages on read 2016-04-30 17:18:46 +02:00
baldurk 7ad5f66671 If debug mode is enabled on vulkan, try and create debug report callback 2016-04-30 17:18:46 +02:00
baldurk 73b97148ce Expand the vulkan env var callback to enable validation layers 2016-04-30 17:18:45 +02:00
baldurk 20625eeeba Add a LibraryHooks callback when capture options are changed 2016-04-30 17:18:45 +02:00
baldurk 9dfb8a0cb5 Print name when extension spec versions mismatch 2016-04-30 17:18:44 +02:00
baldurk 10ba54e1fd Allow setting environment variables with modifications added at runtime 2016-04-30 17:18:44 +02:00
baldurk 375747654d Replace LoadVulkanLibrary() with an extern const char *VulkanLibraryName 2016-04-30 17:18:43 +02:00
baldurk 0929923e9d Prevent float divide by zero error if average framerate isn't set 2016-04-29 22:33:44 +02:00
baldurk 6bd906ac2b Update installed registry key to latest version number after an update 2016-04-28 21:54:10 +02:00
baldurk 6884fc6c2f Demote a log to just debug 2016-04-28 20:42:33 +02:00
baldurk 3d69ece39a Display custom glObjectLabel for shaders, programs and pipeline 2016-04-27 23:18:56 +02:00
baldurk 05f1b2344c Compile fix for x64 2016-04-27 22:54:51 +02:00
baldurk 32114f947f When saving textures, update the filename if type changes and vice-versa 2016-04-27 22:51:59 +02:00
baldurk 31b892b2b7 Strip validation layers out on replay (even if the app used them) 2016-04-27 20:55:58 +02:00
baldurk b1570a32c0 Linux compile fix 2016-04-27 08:39:38 +02:00
baldurk 176a4f8ddf Filter out unsupported vulkan ICD extensions before they reach the user 2016-04-26 23:02:44 +02:00
baldurk c329fb0770 Update to vulkan header version 11 2016-04-26 23:02:44 +02:00
baldurk e9bd02dd74 Remove some fatal errors that don't really need to be fatal 2016-04-26 23:02:43 +02:00
Baldur Karlsson ecb22d5fdc Merge pull request #256 from michaelkvance/more-stats
Add additional sections of API covered in statistics.
2016-04-26 12:36:23 +02:00
Baldur Karlsson f08b237a27 Merge pull request #261 from neilogd/master
Fix for #259
2016-04-26 12:21:33 +02:00
Neil Richardson 2d4b8ebd6d OpenGL: m_CreatingContext is left as true, causing subsequent CreateContextAttribs to fail if one fails. 2016-04-26 20:10:32 +10:00
baldurk 766ab41663 Don't call GetByteSize() if format is unknown, just assume 1 byte 2016-04-26 08:37:52 +02:00
baldurk 09238f515f Make things less Fatal if GetByteSize() is called with unknown format 2016-04-26 08:37:40 +02:00
baldurk 8af9ee634c Handle VK_WHOLE_SIZE in vkFlushMappedMemoryRanges 2016-04-26 08:17:01 +02:00
baldurk cdd7ab2487 Compile fix for official release builds. Didn't show up in nightlies! v0.28 2016-04-25 23:40:31 +02:00
baldurk c6145ff2db Check both the return value and the value in VkPresentInfoKHR struct 2016-04-25 19:11:42 +02:00
Michael Vance 04936f08a9 Add additional sections of API covered in statistics.
Notes
======
- Added statistics recording for shader sets, blend state sets, depth/stencil state sets, rasterization state sets, and output merger/UAV sets.
- Some muddling of things like UAVs into the outputs set... additional "null" sets will be recorded and things, will clean that up in a future change.
- Added missing CS SRV set to the resources statistics.
- Added GetFrameStats() helper to simplify some prolog boilerplate.
- Hoist some of the histogram code out into a helper method, also hoist out the API summary to try to clean that messiness up.
- Change how the API call numbers are calculated--it's now just the API calls as distinct from draw/dispatches. Additionally the ratio is gainst the "pure" API call number, not with draws/dispatches included.

TODO
======
- Figure out where the missing ~4k API calls are in my game captures vs the numbers I'm seeing.
2016-04-25 13:08:17 -04:00