Commit Graph

64 Commits

Author SHA1 Message Date
baldurk b059e601c5 Send sampler information through to GL pipeline state for display 2015-01-16 02:49:00 +00:00
baldurk af51c4f1e6 Tweak rasterizer page display to be a bit nicer 2015-01-16 01:14:21 +00:00
baldurk 6f0284f170 Show depth and stencil states on GL pipeline view 2015-01-16 00:43:44 +00:00
baldurk 1265b5bc6e Set up display of blend equations (and logic, overriding) 2015-01-16 00:18:34 +00:00
baldurk f459c63380 Show restart index on GL pipe state, and handle it being disabled 2015-01-15 23:37:17 +00:00
baldurk 1096308755 Show generic vtx in attributes, and show attribute names from VS 2015-01-15 23:16:55 +00:00
baldurk abbcd7c80f Combine and compress some of the data tables in the D3D11 pipe view
* e.g. class instances only crazy people use, so there's no point to have
  it eating up a ton of space when 99.9% of the time it's empty. Also
  the border colour in samplers is only listed if the addressing is set to
  use the border colour.
* I also collapsed down some of the columns to make it a little simpler
  visually, like min lod/max lod become just "lod clamp" with a range, and
  constant buffers simplified down to a couple of columns.
2015-01-15 22:14:03 +00:00
baldurk f013f6fd29 Store index format and topology in drawcall, to accommodate GL
* D3D11 just latches the state from the input assembler state into the
  drawcall when it's being added. GL stores the state per-draw.
2015-01-15 17:17:12 +00:00
baldurk 04f1d4a378 Centralise debug message processing, and allow adding custom warnings
* This will allow the adding of things like 'redundant api call' for calls
  that have no effect, as well as potential problems like drawing with an
  empty viewport, or similar things that are common problems. Reading out-
  of-bounds on buffers etc is a good example of 'defined' behaviour that
  is probably not desired.
* These heuristics could also identify potential performance problems.
* It also supports adding debug messages after log-load time, so you could
  do an additional extra-strength pass, or do a detailed check of one
  draw call (e.g. a broken draw, to try and figure out the problem). If
  there are any unread debug messages, the status bar will flash and the
  debug messages window will show a count as (N).
2015-01-11 00:20:50 +00:00
baldurk 1c9269fc8d Add simple OpenEXR save/load support using tinyexr
* Thanks to https://github.com/syoyo/tinyexr for the load and save code!
2015-01-06 17:43:19 +00:00
baldurk 0df6e36ff5 Allow displaying any semantics as 'position' on mesh output view
* This means you can visualise the UVs directly, not just as a colour
  on the regular mesh.
2014-12-20 19:54:52 +00:00
baldurk e1d01970c6 Add fetching of Indirect params, and stepping through MultiDraw calls
* This means glMultiDrawIndirect is fetched, decomposed into child draw
  calls and you can step through them individually
2014-12-14 12:17:38 +00:00
baldurk 52476118de Support doubles in shader vars natively, not packed in 2*uint32 each 2014-12-02 00:16:12 +00:00
baldurk c51fade47a Add support for texture rectangles. See gl-330-texture-rect 2014-12-01 22:55:35 +00:00
baldurk b6ba100ed1 Add a couple more buffer creation flags 2014-12-01 12:41:00 +00:00
baldurk ea8203e160 Add backface culling overlay 2014-11-27 23:36:06 +00:00
baldurk 2484bc8bc7 Use UTF-8 everywhere possible and only use wchar_t where required.
* This means that all APIs pass byte string types. ALL strings everywhere
  in the entire codebase must be assumed to be and treated as UTF-8 content
  not ASCII.
* Gets rid of all the horrible %hs specifiers that caused warnings on
  linux! Hooray.
* We convert to wide strings, or use wide characters, only when necessary
  to use the Win32 API. Some windows specific code will stay in wide chars
  just for convenience.
* Files are already serialised as UTF-8 strings for linux/windows binary
  compatibility, so this change doesn't break backwards compatibility.
2014-11-23 14:45:16 +00:00
baldurk 551b0372c8 Allow fully flexible display of position&other component on meshes
* You can choose which component will be used as 'position' when rendering
  vertex inputs. Helpful if a position component isn't auto-detected, or
  if you want to render UV co-ordinates onto the screen.
* Instead of fixed TEXCOORD0/Color options for solid shading onto the mesh
  you can choose a secondary column yourself.
* Also the solid shading options are available on vertex output meshes as
  well as inputs.
2014-11-13 18:37:58 +00:00
baldurk 6308d78cd4 Implement debug device/debug api message tracking for GL 2014-11-02 10:52:24 +00:00
valeriog d18557239f Added visualization of rasterizer state for OpenGL. 2014-10-31 19:40:16 +01:00
baldurk 63d1f868ac Have captures listed on overlay decay after 20 seconds 2014-10-31 00:35:54 +00:00
baldurk deffa8c68e Add displayable string representation for primitive topology 2014-10-07 23:20:19 +01:00
baldurk 37e4209cc9 Remove MipSlice parameter to make things a little simpler 2014-10-07 23:19:57 +01:00
baldurk f3f3e7629f Disable verify map writes by default 2014-10-06 17:41:10 +01:00
baldurk 56e7f0c754 Add an option to verify Map() writes don't overrun. Closes #42
* Has a couple of limitations - won't check deferred context or
  NO_OVERWRITE Map()s except in a captured frame. This could in theory be
  implemented but it'd be complex and I don't want to complicate/break
  the normal path.
* When an overrun is detected, a messagebox pops up to block the thread,
  and if you hit yes, it will debugbreak.
2014-10-05 23:42:25 +01:00
baldurk 3b8e4a3323 [Refs #87: Static Analysis] Fix incorrectly unused variables/returns 2014-10-05 19:01:28 +01:00
baldurk f198e71806 [Refs #87: Static Analysis] Remove unused variables 2014-10-05 19:01:27 +01:00
baldurk 9460fbd970 Add feature to globally hook processes to inject indirectly.
* This allows you to hook into processes that are difficult to launch
  directly with the existing functionality in RenderDoc.
* This is rather risky, as it modifies the AppInit_DLLs registry key to
  inject a small shim dll that checks for the desired process and injects
  the full renderdoc.dll. If that registry key got left, or if there was
  some incompatibility with the shim dll, you could have problems. It
  should only ever be used as a last resort if there's no other way to
  capture.
2014-10-05 13:57:11 +01:00
baldurk a0d6d771f2 Pass through child processes via remote access to UI. Refs #78 2014-09-28 13:58:18 +01:00
baldurk faeb047211 Handle vtx highlights outside UI, for complex topologies. Refs #85 2014-09-28 02:24:57 +01:00
baldurk 499e3b7c9f pass through sample index to pixel history 2014-09-26 22:00:58 +01:00
baldurk 0261095de6 Add selection of primitive to pixel debug from pixel history
* This means when multiple fragments are writing to a pixel you can choose
  precisely the one you want to debug, rather than the debugging always
  running the approximately last fragment to pass
2014-09-25 10:49:01 +01:00
baldurk c1cb2c7333 Comment capture options, deprecate CacheStateObjects. Closes #61 2014-09-24 23:44:31 +01:00
baldurk f4de6993bc Fix double support in FormatElement & custom Buffer/CBuffer views 2014-09-17 18:51:00 +01:00
baldurk e81169f021 Add a dialog to guide users to selecting available save options 2014-09-16 01:27:08 +01:00
baldurk 326ca2ebe8 Move SaveTexture logic to replay layer
* Expand the abilities of the GetTextureData in replay drivers
  to be able to resolve samples and render down to RGBA8 unorm
  for file export to other programs.
* Greatly improve the ability to save textures - in theory any
  texture format/type/dimension/etc should now be mappable in
  sensible & useful ways to output formats.
2014-09-16 01:25:13 +01:00
baldurk 72e2ed1513 Remove UNorm_SRGB component type as it's redundant 2014-09-14 20:29:25 +01:00
baldurk bda68c8ba6 CBuffer window is a dialog now, with ability to set custom layout 2014-09-13 18:48:39 +01:00
baldurk 475c0dab7c Improve type display in constant buffer previewer 2014-09-13 18:48:37 +01:00
baldurk 6fbb247efd Re-organise external-facing headers to be more easily used
* renderdoc/api/replay/ contains all the headers for using the replay and
  analysis side of renderdoc (like in a UI or auto-testing tool)
* renderdoc/api/app/ contains the headers if you wanted to write a
  renderdoc-aware application.
2014-09-13 12:52:25 +01:00
baldurk 35884170eb In D3D11 support setting friendly names on shaders 2014-09-10 18:25:29 +01:00
baldurk 68157814ad Mark pixel history events as UAV writes and display before/after 2014-09-06 13:28:58 +01:00
baldurk 0dbf879e7d Add small timeouts to blocking recv/send so we don't spin forever 2014-09-02 00:16:17 +01:00
baldurk 89e90f8c36 Replace mip selection with sample idx when viewing Tex2DMS. Refs #79
* Also for float/unorm texture add an additional "resolved" option that
  just does an unweighted average of all samples, which is the behaviour
  from before (assuming that's what ResolveSubresource does).
2014-08-29 01:54:14 +01:00
baldurk d55be5f687 Duplicate up pixel modifications based on # frags 2014-08-24 01:00:18 +01:00
baldurk 5ed280ae33 Markers don't increment drawcall ID, use eventID for prev/next/parent 2014-08-24 00:59:26 +01:00
baldurk 55e0178ec9 Add quad overdraw mode. Thanks Stephen Hill (@self_shadow)!
* http://blog.selfshadow.com/2012/11/12/counting-quads/
* Quad Overdraw based on ScenePS4 from the revised implementation. The
  colours are new, up to 20 levels. Picking pixels shows the overdraw level
* Available per-pass and per-drawcall, a pass defined the same way as in
  the mesh view, drawcalls since last clear or RT change.
* List of events now passed through to RenderOverlay the same as RenderMesh
2014-08-17 15:28:51 +01:00
baldurk 7ab9815aaf Introduce a bindpoint mapping as part of the pipeline state
* For APIs where the shader namespace/bindpoint (which may be arbitrary
  like 'the Nth texture resource' can be mapped, at each event, to the
  actual API bind point where the object is.
* On D3D11 this is pass-through, on GL this returns the value of each
  uniform.
* This also means GL shader reflection structures are properly immutable
  and the variance in the uniform values is handled elsewhere.
* In future this might need to be expanded to support more complex binding
  methods, where the mapping returns the resource rather than just mapping
  to an integer bind ponit.
2014-08-13 15:56:55 +01:00
baldurk 49ab71181c Add some system attributes from GL 2014-08-12 16:47:00 +01:00
Baldur Karlsson c648904cba DebugMessage description is an ascii string 2014-08-06 15:42:33 +01:00