Commit Graph

2942 Commits

Author SHA1 Message Date
baldurk d3eee53c57 Temporary glslang warning fix 2016-04-16 19:16:14 +02:00
baldurk 5989f3c2ce Update glslang build to master revision e1cd410d9c03 2016-04-16 19:08:22 +02:00
baldurk 017136882a Skip any barriers that we can't get an ID for (likely image is NULL) 2016-04-16 18:06:19 +02:00
baldurk f4681f39f7 Ensure newly inserted states use normalised mip/layer count. Refs #242 2016-04-16 18:06:05 +02:00
baldurk 7263f97e82 When first rendering to output window backbuffer, clear it.
* This fixes a validation error which complains (rightly) that our
  renderpass writing to the backbuffer is LOAD_OP_LOAD but we haven't
  initialised the memory. So just clear to black - the contents don't
  matter as we'll just be overwriting it entirely.
2016-04-16 17:30:40 +02:00
baldurk 01a17281a9 Create some dummy images to fill texdisplay descriptors. Refs #247
* This is unfortunate, but necessary to be spec valid - the other types
  of images for the texdisplay shader are only skipped due to dynamic
  branching so they must have valid descriptors. That means valid image
  views, which means matching type images. We create a 1x1 image of each
  type (RGBA8 UNORM/UINT/SINT and 2x MSAA) to fill out the unused
  descriptors.
2016-04-16 17:30:40 +02:00
baldurk d669d0cc79 Give textures and buffers a name indicating they are in invalid state 2016-04-16 17:30:40 +02:00
baldurk 480b37da40 Rename file in CMakeLists.txt 2016-04-16 17:30:39 +02:00
baldurk 566d73b48d Take viewport count from pipeline info, null any unset views/scissors 2016-04-16 11:24:59 +02:00
baldurk 1be06c3b07 Update vcxproj to point to platform_specific.h 2016-04-15 23:47:41 +02:00
Baldur Karlsson 1796367dfc Merge pull request #249 from michaelkvance/sn-dbs-fix-pull
Switch RENDERDOC_PLATFORM to RENDERDOC_PLATFORM_<PLAT>.
2016-04-15 20:03:11 +02:00
Michael Vance 8b1794456d Switch RENDERDOC_PLATFORM to RENDERDOC_PLATFORM_<PLAT>.
Notes
======
- With no clean way to do string comparisons in the C preprocessor, have a define per-platform. This avoids the clever string concatenation for determining the OS-specic bits, and allows SN-DBS to distribute builds without custom rewrite rules.
- Fix up instances of WIN32, etc., in non-3rdparty sources to refer to this.
- Move the per-platform specific bits into their own subdirs.
2016-04-15 13:59:59 -04:00
baldurk f30a1a6dc3 Change vector to rdctype::array so size is consistent across compilers 2016-04-15 18:32:49 +02:00
baldurk f6ef1481b7 Change replay proxy size-checks to run on x64 builds 2016-04-15 18:06:48 +02:00
baldurk d4931fce49 Add missing serialisation for newly added elements 2016-04-15 18:06:36 +02:00
baldurk 0ae8d7500b Print details of physical device to log for vulkan 2016-04-14 21:22:48 +02:00
baldurk 8a864850a1 Don't print message about vulkan version 2016-04-14 21:21:41 +02:00
baldurk dbd9a41600 Mark GL/Vulkan as having no stats recorded 2016-04-14 21:21:29 +02:00
baldurk b826f58497 Move scratch buffer for log formatting from stack to static data section
* Reduces stack pressure in case applications have manually specified
  smaller stacks.
2016-04-14 21:09:22 +02:00
baldurk 171fbcfabd Fix crashes when loading 'image' logs 2016-04-14 21:05:40 +02:00
baldurk e5c9ca59e5 Fix typo using wrong array 2016-04-14 18:20:30 +02:00
baldurk 9b853f86f0 Fix 'conditional expression is constant' errors with RDCASSERT(false) 2016-04-14 00:34:55 +02:00
Baldur Karlsson 8821ce3778 Merge pull request #245 from cgmb/fix-linux-build
Fix Linux build
2016-04-13 10:27:54 +02:00
Cory Bloor a95b69b28a Fix -Wswitch compiler warning
eResType_Count is not meant to be used, but with -Wswitch and -Werror
enabled, the fact that it's missing from the switch statement is a
compile error.
2016-04-13 01:48:10 -06:00
Cory Bloor 8a4e562b39 Update ReplayRenderer_SetFrameEvent on Linux
These signature changes were missed during the removal of multi-frame
support on Linux in 70b99a4412.
2016-04-13 01:48:06 -06:00
baldurk 898344c14c Persist the statistics viewer into window layouts 2016-04-13 00:38:51 +02:00
baldurk 9ee5218761 Add more file-size stats to statistics viewer 2016-04-13 00:37:28 +02:00
baldurk 70b99a4412 Remove antiquated 'multiple frames in one capture' support.
* Cleans up the code a bunch, this support is unlikely to ever return
  and if it does it will need a rethink anyway.
2016-04-13 00:28:09 +02:00
baldurk 4e9082ee7c Rename slots to bindslots - conflict with Qt #define keyword 2016-04-13 00:02:10 +02:00
baldurk d62ce264b6 Display custom names for input layouts 2016-04-12 22:46:25 +02:00
Baldur Karlsson 37e6e7a94e Merge pull request #243 from michaelkvance/statistics-squashed
Support for a new 'Statistics' pane.
2016-04-12 11:10:53 +02:00
Michael Vance 973ee146a8 Support for a new 'Statistics' pane.
Notes
======
- Create a (hopefully) cross-backend performance statistics abstraction as part of FetchFrameInfo. This currently collects statistics about constant buffer binds, sampler binds, resource binds, client and server style resource updates (e.g. Map and UpdateSubresource), index & vertex buffer binds, and draws and dispatches. In my captures this covers approximately half of all API traffic. The rest is often shader sets, and then usual RS, OM, etc., that aren't currently tracked. During READING state parsing on the wrapped device context, record statistics about the calls and store them into the current frame info. We inspect objects occasionally to get things like their type for recording. It may be useful to expand this in the future to check bind types, etc. On the GL/Vulkan backends the stats data is never initialized and we display the same statistics data as before.
- Add a new statistics pane in the UI. A variety of shim arbitration/marshalling is provided to get the statistics data across the managed/native boundary. Removed the old statistics menu item. Currently the statistics pane is just a text log of various gathered data, with ASCII art (woo!) histograms. However in the future we would like to have image based historgrams as well as support for gathering statistics on a mask of stages, etc.
- Remove 'diagnostic' events (e.g. push/pop/marker) from the API call count as it distorts the API:draw call ratio.
- Add _First and _Count to ShaderResourceType and ShaderStageType for weak enumeration (weak due to int cast requirement).
- Provide utility functions Log2Floor for 32 and 64 bit types. These require OS specific clz, which are provided for Windows/VS and Linux/gcc/clang.

TODO
======
- UI toolkit based historgram, ability to set stages enabled for statistics, etc.
- Revisit necessity of gathering statistics across frames--apparently there is no multi-frame capture in a single log anymore?
- Revisit min/max/etc. gathering on the data--is there some way to improve this to not be so mechanical? Perhaps with field enumeration? However if moving to C++/Qt in future, possibly not a good time investment.
2016-04-11 21:23:05 -04:00
baldurk a0f20713f4 Add checks for QueryInterface(IUnknown) to return 'this'. Refs #238 2016-04-11 23:14:24 +02:00
baldurk e24f93970d Add empty marked rows for descriptor sets required by shader but unbound 2016-04-11 20:57:24 +02:00
baldurk edd61c4486 Add warnings and skip when shader needs desc sets/binds that are unbound
* These should be converted into log warnings/errors soon.
2016-04-11 20:57:23 +02:00
baldurk 9536962156 Don't crash if fewer vertex buffers are bound than required by pipeline 2016-04-11 20:57:22 +02:00
baldurk 5fade945cf Set number of samples to 1 at minimum, even if it was set to 0 2016-04-11 20:57:20 +02:00
baldurk f986b715b4 Don't pass invalid array to API if user code didn't bind sets properly 2016-04-11 20:57:19 +02:00
baldurk 84dcd7b9ad Fix off-by-one in assert, allow Switch as first thing in function 2016-04-11 20:57:18 +02:00
baldurk df00fc95e7 Remove assert that's no longer needed 2016-04-11 20:57:16 +02:00
baldurk 83ff0df942 Add custom_assert.h to project 2016-04-09 16:31:05 +02:00
baldurk 6d070fb83e Use sizeof(a) instead of a::PoolType::AllocByteSize
* The coverity compiler doesn't seem to handle the AllocByteSize case
  correctly
2016-04-09 15:45:01 +02:00
baldurk e4dae008e9 fix public/private keywords that snuck into declarations somehow 2016-04-09 15:44:22 +02:00
baldurk 8a2b0bd6e9 Match upstream change to fix this warning, made a few days ago 2016-04-09 13:30:45 +02:00
baldurk 51721f78b8 Fix for VS2015 warnings, mostly variable shadowing 2016-04-09 13:15:01 +02:00
baldurk 836248b629 Fix for compile warning, parameter shadowing class member 2016-04-09 13:01:09 +02:00
baldurk dacd633fac Remove true from 'infinite' for loops, to fix warning C4127 const expr 2016-04-09 12:44:28 +02:00
baldurk 7b20c110ac Enable warning level4 with a couple of disabled warnings on all projects
* Unused formal parameter remains disabled, but we also disable a
  warning about being unable to generate an operator=.
* glslang remains compiled on level 3, since most of the new warnings
  aren't easily fixable so would be muted anyway.
2016-04-09 12:43:00 +02:00
baldurk 6550b5eefc Enable warning C4127 - conditional expression is constant 2016-04-09 12:42:59 +02:00
baldurk cda0b4cb5a Enable warning C4189: local variable is initialized but not referenced 2016-04-09 11:24:45 +02:00