Commit Graph

627 Commits

Author SHA1 Message Date
baldurk c0fb5fa8ac Expose a MarkDirtyResource that takes GLResource for convenience 2014-11-11 22:54:55 +00:00
baldurk 1f33368624 Allow resource managers to set initial contents chunk directly
* Also use Serialiser::Alloc/FreeAlignedBuffer for the blobs
2014-11-11 22:54:55 +00:00
baldurk 62f28f751c Implement some multi-binding functions. 2014-11-11 22:54:55 +00:00
baldurk 67e5b28f3b Debug log for which extension functions the app is requesting 2014-11-11 22:54:54 +00:00
baldurk 67ae269bc5 Change logging at the end of pixel history function to RDCDEBUG 2014-11-11 17:49:40 +00:00
baldurk 1fc1e632b3 Just pass-through wglSwapIntervalEXT as we don't care about it 2014-11-11 17:47:55 +00:00
baldurk 97fcde8402 Implement glClearTexImage and glClearTexSubImage 2014-11-11 17:47:38 +00:00
baldurk 5e74364ab1 Identify 'POS' as an input position semantic. Refs #107 2014-11-11 13:47:40 +00:00
baldurk 0682842c9d Improve automatic texture naming for GL 2014-11-11 00:05:38 +00:00
baldurk 4f1c94f83f Make sure invalid/undefined and texture buffers are properly cached 2014-11-11 00:00:35 +00:00
baldurk 513ace06ec Calculate correct size for compressed cubemap face data
* GL_TEXTURE_COMPRESSED_IMAGE_SIZE glGet value gives you the size for all
  faces on this mip, but we fetch the image data face-by-face, so it needs
  a /6.
2014-11-10 23:46:44 +00:00
baldurk 9e60ce8959 Handle texture buffers on texture metadata retrieval 2014-11-10 23:45:48 +00:00
baldurk 4de29f3df3 If no pixel unpack buffer was bound on capture, make replay match 2014-11-10 23:45:32 +00:00
baldurk cea719f7cf Bind fake backbuffer instead of default framebuffer 2014-11-10 23:45:11 +00:00
baldurk 3124614fc2 Fix wrong max/min 2014-11-10 23:28:03 +00:00
baldurk ab2cf8b1e0 Change clamps to 4x4 to just 1x1 minimum size 2014-11-10 23:17:11 +00:00
baldurk 100f644bd4 Use mip dimensions rather than full image dimensions 2014-11-10 23:15:20 +00:00
baldurk 060801db20 Check GL_MAX_VERTEX_ATTRIBS on apply as well as fetch 2014-11-10 23:13:20 +00:00
baldurk 77a5d9d7b5 Overlay should be Y-Flipped if main view is 2014-11-10 23:11:18 +00:00
baldurk 9da25f020e First implementation of initial contents for GPU dirty textures 2014-11-10 23:07:18 +00:00
baldurk ed2661514a Since the debug layer complains for me, respect GL_MAX_VERTEX_ATTRIBS
* I need to respect the GL_MAX_* values all over the render state, but the
  other things don't complain so I can ignore it for now :).
2014-11-10 23:07:18 +00:00
baldurk 165e00a5f9 Fill m_Textures during cap, and store tex dimension & # MSAA samples 2014-11-10 23:07:18 +00:00
baldurk 9b5864bbd2 Remove assumptions in resource_manager that resources are pointers 2014-11-10 23:03:11 +00:00
baldurk c406804d24 Bump D3D11 serialise version for ce0a67e8, and add backwards compat
* This is the first attempt at backwards logfile compatibility. Since most
  captures are fairly ephemeral I don't know to what degree I'll go in
  future to support old captures, but since this was a fairly trivial
  example (just skip serialising a bit of data if it's an old version
  without it), I'll test this out.
2014-11-10 17:53:31 +00:00
baldurk ef950b63db Fix installer to include necessary Microsoft.Dynamic.dll 2014-11-10 17:30:28 +00:00
baldurk 41f80630ec Include IronPython component in installers, mark as 64bit 2014-11-10 17:20:00 +00:00
baldurk 11bf575a1d Fix reference to non-existant file in docs 2014-11-10 17:16:11 +00:00
baldurk 14e81f9a18 Protect against invalid lookup in vector of operand indices
* ld_ms has 4 operands but the operand in [3] is not a sampler and won't
  have any indices.
* Speculative fix for a crash report uploaded with a crash here on a ld_ms
2014-11-09 22:12:17 +00:00
baldurk ce0a67e8f1 Fetch and serialise hidden stream-out buffer counters. Closes #105
* Essentially when streamout'ing to a buffer a hidden counter is saved with
  it that contains the number of primitives written.
* With this change we issue queries over each buffer's duration as a
  stream-out target so we have those counters available when necessary.
* At the start of frame capture, we save out the current value of all those
  queries, and use them if that buffer is used for a DrawAuto() without
  being streamout'd to again in the captured frame.
2014-11-09 16:17:47 +00:00
baldurk 5a96f07a0a SOSetTargets should explicitly NULL any buffers it doesn't set 2014-11-09 15:35:49 +00:00
baldurk ea9054b752 Hack for crash in D3DGear if ppDevice pointer is NULL. 2014-11-09 11:28:48 +00:00
baldurk e57cf457a4 Handle textures that were created but not typed/initialised 2014-11-09 02:00:09 +00:00
baldurk b3c5587420 Handle pixel unpack buffers on replay 2014-11-09 02:00:08 +00:00
baldurk 9ec7d9eff5 Lightweight state push/pop of only what's needed for overlay
* The full state vector push/pop was slow (admittedly this was probably
  because it's not optimal, and for some things will read over the max).
2014-11-09 02:00:08 +00:00
baldurk 7aca4a8603 glBufferSubData applies to UpdateCount on high traffic resources 2014-11-09 02:00:08 +00:00
baldurk 7c6ef6faf7 Fixes for glTexSubImage* to handle unpack buffers
* If a pixel unpack buffer is bound, we mark the resource as dirty when
  idle. When capframing we serialise just the pointer value as offset, not
  the buffer contents.
2014-11-09 02:00:07 +00:00
baldurk f13f07ee4e Implement remaining functions that UE4 uses
* glBindFragDataLocation
* glMultiDraw* (non indirect)
* glDraw*Indirect
* glDispatchComputeIndirect
2014-11-08 23:00:13 +00:00
baldurk 54abe30ee6 Implement glObjectPtrLabel 2014-11-08 23:00:13 +00:00
baldurk 47e5874aa4 Check for proxy texture targets and don't serialise those calls 2014-11-08 23:00:12 +00:00
baldurk d50b74694d Implement glTexBuffer, multisampled tex functions, glTexImage*
* glTexImage probably makes some assumptions about usage, at the least it
  assumes that it won't be called to re-size/re-allocate textures (that
  will probably break), and it also assumes that level 0 will always be
  glTexImage'd and the other levels are standard mip sizes (I don't know
  what happens in GL if you specify non pow-2 descending mip sizes for
  different levels. Given we're only targetting core 3.2 and above, this is
  probably a safe set of assumptions.
2014-11-08 23:00:12 +00:00
baldurk 23a748eca9 Add renderbuffer support 2014-11-08 18:03:48 +00:00
baldurk 1276eda4c7 Add glFlushMappedBufferRange, but not implemented yet
* Still need to implement persistant/etc buffer Map()s
2014-11-08 13:49:23 +00:00
baldurk 5b3a8aabdb Implement glClearBufferSubData 2014-11-08 13:48:41 +00:00
baldurk 06b8b76973 Implement glCopy*Image functions
* When not capturing a frame, we just mark the resource as dirty
2014-11-08 13:48:41 +00:00
baldurk e4edec0d4e Implement glQueryCounter 2014-11-08 13:48:41 +00:00
baldurk 8dbdd97a2f Implement glSampleCoverage 2014-11-08 13:48:40 +00:00
baldurk fbabc0180b Add a couple of missing glGet*s 2014-11-08 13:48:40 +00:00
baldurk 9756b60a8a Add some missing ARB aliases of core functions 2014-11-08 13:48:39 +00:00
baldurk d3650cc73d Remove wgl/glx from hookset.pl - unused. Also skip blank lines 2014-11-08 13:48:39 +00:00
baldurk 9b02d4a73e Implement remaining glVertexAttrib functions 2014-11-07 01:18:04 +00:00