Commit Graph

1365 Commits

Author SHA1 Message Date
baldurk 5232ee7626 Don't allow direct writes to RangeMax/RangeMin that can break things
* The old code in m_RangeMax/m_RangeMin setters wasn't doing proper
  epsilon enforcing so min=max could end up happening. It's easier to
  set both at once (this is all we care about anyway) so that it does
  properly make the min and max distinguishable.
2015-07-07 18:30:14 +02:00
baldurk 80c76fab5f Completely speculative fix for crash in shader viewer tooltip
* There were two bug reports of NullReferenceException on line:

  hoverWin = m_HoverNode.OwnerView;
* Which doesn't make sense since m_HoverNode must be non-null to go by
  the lines above, and all the callbacks should run on the UI thread so
  it can't be a race.
* Caching locally and checking for OwnerView/ListView being valid might
  fix the crash. Hopefully!
2015-07-07 18:05:17 +02:00
baldurk d882cab511 Inherit OwnerView into TreeListView Node's children 2015-07-07 18:03:46 +02:00
baldurk e79c98c85a Fix crash if tooltip is still open when watch variable is deleted 2015-07-07 17:38:52 +02:00
baldurk 7f240b4d14 Update the register tooltip as you step, if it's open 2015-07-07 16:48:02 +02:00
baldurk 4c988e9e3a Better arcball controls in the mesh viewer
* Tweaked flycam a bit too, but not much.
* Refactored the API/C# side camera classes to avoid exposing a ton of
  stuff just to do relative rotations in the arcball via quaternions.
2015-07-07 15:38:00 +02:00
baldurk 4444da212d Handle bounding boxes of 1 and 2 component types properly 2015-07-07 10:17:58 +02:00
baldurk dd9aff3890 Implement right click to pick vertices in the mesh viewer. Refs #139 2015-07-07 10:02:36 +02:00
baldurk d6e1b012de Check if we're running feature level 11.1, not if the 11.1 iface is up 2015-07-07 01:50:19 +02:00
baldurk edda31248f Render bounding box around mesh, centre & scale arcball on bbox
* The arcball lookat position can also be dragged with alt-click or
  middle click.
* Also supports other elements as position not just magically-selected
  "POSITION" element.
2015-07-06 19:58:45 +02:00
baldurk b23db183b6 Bugfix for raw buffer data not being properly filled out in mesh view 2015-07-06 19:46:59 +02:00
baldurk 36f12d1ef2 Add export to CSV option in cbuffer previewer. Refs #140 2015-07-06 18:16:20 +02:00
baldurk 6afbe8c92b Add exception handling on Clipboard.SetText, fall back to SetDataObject 2015-07-06 18:15:49 +02:00
baldurk 069e2047ae Enable MSAA on the mesh preview 2015-07-06 17:45:11 +02:00
baldurk 7277d5d76e Support pixel history over a specific mip/array slice only 2015-07-06 17:18:19 +02:00
baldurk 6bb8ebee32 Fix loop count for freeing UAvs 2015-07-06 17:14:16 +02:00
baldurk 1134988665 Fix shader debugging when rendering to mips of a texture 2015-07-06 15:53:02 +02:00
baldurk 95bda3d588 Tweak slice/mip auto-selection for render targets rendering to mips
* Should mean the 'target' of the render target will be selected by
  default now when clicking to an event, without annoyingly switching
  away from what you were looking at.
2015-07-06 15:49:22 +02:00
baldurk 351b04d499 Tweak initial-skipping logic. Don't skip square RTs
* I don't know if this is particularly justified, but I think square RTs
  are much more likely to be 'data' RTs updated each frame, not leftover
  frame data that will be overwritten. That I know of, there are no
  square resolution output displays (they're always portrait or
  landscape and rectangular).
2015-07-06 15:20:43 +02:00
baldurk cffad15781 Support 64 UAVs on OM/CS stages - a D3D11.1 feature
* Everything should still work on regular 11.0 and log opening backwards
  compatibility is maintained.
2015-07-06 16:17:58 +02:00
baldurk 2b8ef11b8c Include 11.1 and 11.2 headers in common place 2015-07-06 15:51:41 +02:00
baldurk 79e4d3d6ed Fix assert & bounds check on immediate constant buffers 2015-07-03 07:52:51 +02:00
baldurk 1ff7d96b49 If auto-fit is checked (right click), fit on texture selection change 2015-06-30 20:30:30 +02:00
baldurk 6337218bb3 Add x64/x86 identifier to initialisation log message 2015-06-29 21:34:29 +02:00
baldurk bde6fabf7d Rearrange project structure, so that drivers can be easily disabled
* This is kind of arbitrary at the moment, but in future when D3D12 and
  Vulkan drivers appear, not everyone who builds RenderDoc will want to
  build all drivers, so making them separate projects makes it more easy
  to disable/remove them.
2015-06-29 20:04:47 +02:00
baldurk ef1dffbaad Typo fix - pass through target parameter, not GL_NONE 2015-06-28 18:28:23 +02:00
baldurk ac08dded1a Add structure prefixes to renamed cbuffer registers 2015-06-26 19:19:02 +02:00
baldurk 9692ef0cf3 Identify arrays of cbuffer registers properly to rename them 2015-06-26 19:18:44 +02:00
baldurk f5ddd7d2c8 Highlight register rows when clicking to highlight them in disassembly
* Hopefully will make it easier to track the rows you care about.
2015-06-26 19:06:59 +02:00
baldurk f769c9cd72 Make debug keys (F10, F5 etc) work while register/watch windows focussed 2015-06-26 19:06:23 +02:00
baldurk 5a03794a5a Consistently treat file containing entry point as the 'main' file
* This fixes shader editing when the entry point file wasn't the first
  in the list.
* Might need better detection of the main file than just searching for
  the entry point substring - could produce false positives in other
  files in a comment or #define or something similar?
2015-06-26 01:13:48 +02:00
baldurk b7fd43f237 Tweak how device/window handles work with NULL, to now wildcard match
* This makes it a bit easier to specify what you want to capture without
  requiring redundant information.
2015-06-20 16:09:39 +02:00
baldurk adaf3b25e6 Remove orphaned file 2015-06-19 22:37:30 +02:00
baldurk b8226fc97c Add new API calls for embedding renderdoc in apps
* This will easily let an application tell if an instance of the replay
  UI is currently connected, and if not launch it and connect. Good for
  integrating renderdoc somewhere where you can trigger a capture, and
  then have the replay UI pop up to either connect live, or open the
  most recently log.
2015-06-19 22:37:29 +02:00
baldurk de61af5921 Add app API function to get number of captures 2015-06-19 22:35:07 +02:00
baldurk 1d96ac2b05 Simplify renderdoc_app.h to remove typedefs and dependency on stl 2015-06-19 22:34:57 +02:00
baldurk cc108d6488 Track and don't show pipeline refcounts to the user
* Some naughty applications assume refcount will hit 0 if they release
  all references but keep the object bound to the pipeline, so for
  compatibility's sake we preserve this behaviour
2015-06-11 21:03:12 +02:00
baldurk f3e25ba194 Add EXT_debug_label enum variants to glObjectLabel 2015-06-10 18:43:19 +02:00
baldurk d4372847f3 Better handling of emulated (luminance/alpha) textures in initial states
* To simplify things we assume there won't be any user swizzling on
  luminance or alpha textures, and just apply our own to emulate rather
  than attempting to store & stack them.
2015-06-09 22:02:05 +02:00
baldurk 9d0c7bd41a In GL don't serialise any texture initial state if storage isn't alloc'd 2015-06-09 21:43:43 +02:00
baldurk ed971316b1 Handle weird unexplained case where texture dimensions query as 0x0x0 2015-06-09 21:22:14 +02:00
baldurk a45b359344 Apply luminance/alpha format emulation to TexStorage* functions 2015-06-09 21:20:51 +02:00
baldurk 0080de6703 Report ARB_direct_state_access in extension string correctly 2015-06-08 19:53:35 +02:00
baldurk 0a61d13d64 Make sure we don't get wrapped DXGI objects created with NULL inner ptrs 2015-06-04 22:29:07 +02:00
baldurk 4f5149a363 Add EXT aliases of glProgramUniform* for EXT_direct_state_access 2015-06-04 22:13:12 +02:00
baldurk 82fe9cdf3e Skip out on save/restore of binding if glBindBuffer target is GL_NONE 2015-06-04 22:12:44 +02:00
baldurk 9d98fe4197 Fix a super scary typo, using the wrong program for glGetUniformLocation 2015-06-04 22:11:36 +02:00
baldurk 1d05cf5e21 Implement Ctrl-F3/Ctrl-Shift-F3 to search for current word/selection 2015-06-04 21:46:35 +02:00
baldurk ae17d239d5 Make sure when loading texture data out of frame, unpack alignment is 1 2015-06-04 21:33:24 +02:00
baldurk 75a9bd4376 Expand out arrays of shader resources at lower priority than non-arrays
* An array of resources like SamplerState foo[8]; or Texture2D blah[8];
  show up as one entry in the reflection data, so need to be expanded
  out to several entries.
* Normally it's OK to overlap two resources in the same bind, as long
  as only one gets used - this doesn't matter to us since only the used
  one will show up in the reflection data. Unless there's an array e.g:
  SamplerState foo[8] : register(s0); // [0] and [5] used;
  SamplerState bar    : register(s3);
  in which case foo[] appears in the reflection data for the sake of [0]
  and [5], and bar will appear too (causing an overlap between foo[3]
  and bar. Since we know the reflection data is unambiguous, we
  prioritise individual entries over array entries by listing them
  first and using the first match for any bindpoint.
2015-06-04 21:04:08 +02:00