Commit Graph

1350 Commits

Author SHA1 Message Date
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
baldurk b36876a725 Fix for directly doing pixel history on a depth-stencil texture 2015-05-27 20:48:15 +02:00
baldurk 237fdd773d Make sure to properly cast FrameCapturer device pointer
* External users identify the D3D11 frame capturer by the ID3D11Device *
  but if we don't do that cast explicitly the returned pointer is not
  correct to what is returned to the user on device creation.
2015-05-27 20:36:02 +02:00
baldurk e328e6cd1d Validate SRV parameter to GenerateMips 2015-05-27 20:35:08 +02:00
baldurk 032700d0df Handle the case where the active window gets removed leaving us stuck
* When multiple windows are around if the active window gets removed
  we need to be careful when reassigning the active window.
2015-05-22 21:48:29 +02:00
baldurk 346ce0a778 Handle case where two cbuffers have identical names, assume same order
* Normally the cbuffers when listed in resources (to give the bind point
  info) and the cbuffers listed with their variables are not necessarily
  in the same order, so we match them up by name. It's possible to get
  multiple cbuffers with the same name though, so in this case we just
  have to assume they come in the same order in both lists.
* We do this by appending _s to each duplicate name (so handling many
  duplicates) in both iterations.
2015-05-22 21:48:28 +02:00
baldurk 03a3bafaf9 Make #include filename searching case insensitive 2015-05-22 21:48:27 +02:00
Baldur Karlsson 4e30afba58 Merge pull request #138 from zao/fix/qi-renderdoc-iunknown
Add explicit cast when QI for IRenderDoc_uuid
2015-05-11 23:51:27 +02:00
Lars Viklund 8da2062a89 Add explicit cast when QI for IRenderDoc_uuid
When assigning to the void** output parameter in QueryInterface, ensure
that the pointer written into the output is a COM pointer by casting to
the correct branch of the multiple inheritance.

As commit 2558b2cde introducing this functionality claims to return an
IUnknown*, so does this commit.
2015-05-11 23:23:44 +02:00
baldurk 7e66c2787c Raise limit on zoom to 25600% so manual zoom can be higher. Refs #137
* Still leaving some upper limit so that typos don't result in a zoom
  level of something crazy.
* This also allows 'fit to texture' to zoom in more, but I'm OK with
  that.
2015-05-09 16:23:37 +02:00
baldurk 397ef85342 Prevent unnecessary copies of DXBCFile*
* The DXBCFile* is new'd in the wrapped CreateShader function and passed
  to the wrapped shader instance, and ownership of the pointer lives
  with the ShaderEntry in WrappedShader::m_ShaderList.
* On destruction when a shader removes itself from that list, the
  DXBCFile* is deleted.
* The same lifespan applies to the ShaderReflection*
2015-05-02 16:45:09 +02:00
baldurk 26b9d7902b Bump version for future nightly builds to 0.25 2015-05-02 16:34:58 +02:00
baldurk fc831982eb Add a 'garbage collection' for cached state objects
* In extreme cases a program can create lots and lots of unique short-
  lived state objects, we cache them all and run out of the 4096 state
  objects that can be around, then further creates fail out.
* To handle this, if we have 4000 total state objects, we release any
  that are purely being held by us (not the program). This isn't an
  ideal solution but it's quite simple and non-invasive, and only has
  a slight impact on rare Create calls.
* Most programs will either create a few up-front (as intended), or at
  worst create a few dozen or even few hundred then re-use them as they
  are cached.
v0.24
2015-04-28 13:42:50 +02:00
baldurk 3dac5fe624 Fix calculation for aligning next serialised buffer. Refs #133 2015-04-28 12:21:36 +02:00
baldurk c58c406b20 Mark subresources with data as having data in serialiser
* This means that Map() calls won't redundantly generate more data on
  top of the data serialised with the texture creation chunk.
2015-04-28 12:17:02 +02:00
baldurk 6ce04a391e Fix comparisons being wrong in previous commit 9273a5b. Refs #123
* Thanks to @loosche for catching this mistake!
2015-04-28 10:34:11 +02:00