Commit Graph

661 Commits

Author SHA1 Message Date
baldurk c44fca55a3 Suppress performance GL debug messages by default 2014-11-15 14:24:43 +00:00
baldurk b00cffddbd return GL_*_INTEGER base format for unnormalised integer types 2014-11-15 14:21:02 +00:00
baldurk c6378619d8 When a texture is bound to a framebuffer, consider it dirty 2014-11-15 14:04:14 +00:00
baldurk 5be7a4eef3 Save texture state parameters with initial state
* If the user code calls glTexParameter many times (defined as > 12) then
  we treat that texture as dirty and stop saving those chunks.
2014-11-15 14:01:02 +00:00
baldurk 5acc53bae0 Add EXT_DSA glGetTextureParameter functions 2014-11-15 13:58:52 +00:00
baldurk 65df5a9192 Check file hasn't been removed out from under us before saving 2014-11-15 12:21:27 +00:00
baldurk 5b2a754196 Serialise a few more state change functions 2014-11-15 12:03:16 +00:00
baldurk b41b5e1f9a Handling for old style unsized texture internal formats 2014-11-15 11:03:08 +00:00
baldurk 0b888f2609 Serialise out whether data is provided to glTexImage* functions 2014-11-15 10:41:28 +00:00
baldurk 92d77e32b3 Add missing \s 2014-11-15 00:33:11 +00:00
baldurk 29b4c65162 Work around issue where application 'exports' gl symbols
* This is a bit complex. If an application has a global symbol e.g.
  GLENABLE glEnable; as their function pointers that they fill out from
  glXGetProcAddress, then OUR glEnable global function gets replaced with
  that symbol. It's weird. But it means crashes if we try and return the
  address of that symbol as a function pointer.
* However it's also possible to get the reverse problem - if an application
  has a shared library that has those symbols expecting them to be function
  pointers, those symbols will get overridden with our global functions
  and it will mean an instant crash when they try to assign to those func
  ptrs.
* I'm not sure if there is an ideal fix to this Catch-22, as we also need
  to export these bare functions in case someone just plain links against
  libGL and expects them to be there, with no GetProcAddress/dlsym funny
  business.
2014-11-15 00:13:44 +00:00
baldurk 0f34fbd29a Check that for each new context we populate hooks to get func ptrs 2014-11-14 23:26:18 +00:00
baldurk c5e53f7473 pick up libGL dlsym handle when dlopen() is called 2014-11-14 23:25:15 +00:00
baldurk 9c0b89baae StringFormat::Fmt was re-using va-list incorrectly on linux 2014-11-14 23:22:50 +00:00
baldurk fd9d11bc6d Fix linux GetEmbeddedResource not using address of file start/end 2014-11-14 23:22:36 +00:00
baldurk ac89399c60 linux compile fixes 2014-11-14 14:16:05 +00:00
baldurk ecbd919d05 Try to preserve horizontal scroll between events on mesh view 2014-11-13 22:21:09 +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 ef65ad65f1 Fix highlighting VS output verts with index buffers 2014-11-13 18:24:08 +00:00
baldurk 5abeee554f Generate generic input layout from correct VS bytecode 2014-11-13 13:49:13 +00:00
baldurk b255f5bc36 Protect against ArgumentException in Timeline Bar paint
* Crash report was submitted indicating a crash here, which is either
  memory issues or momentarily crazy-large window. We can catch the
  exception and just clear to black.
2014-11-12 23:38:40 +00:00
baldurk f59ae15ad3 Defensively code against queries failing to create.
* Received a crash report that indicated some queries failed to create,
  which means uninitialised pointers would be used from then on (= boom).
2014-11-12 23:30:48 +00:00
baldurk e4684baf20 Handle fetching DX11.2 interfaces, but just as passthru. Closes #106
* Until I have a sample that uses it, I'm not going to attempt to serialise
  the tiled resource API. It has a lot of other potential knock-ons too
  (e.g. to initial contents).
2014-11-12 23:28:19 +00:00
baldurk 65cee274eb Wrap/handle as appropriate new DXGI 1.2 & 1.3 ifaces. Refs #104 2014-11-12 22:55:58 +00:00
baldurk c273073935 Proper record deletion and record parenting 2014-11-12 00:48:56 +00:00
baldurk d46b1bfdd0 glCopyImageSubData just marks destination texture as dirty 2014-11-12 00:48:24 +00:00
baldurk f7c07577a0 Only serialise glBindImageTexture(s) when in WRITING_CAPFRAME 2014-11-12 00:48:00 +00:00
baldurk ca03304adb Handle special formats like GL_LUMINANCE8_EXT separately 2014-11-12 00:47:38 +00:00
baldurk 45598feff5 Add API differentiating string to in-program overlay 2014-11-12 00:22:18 +00:00
baldurk b7912647cf Initial implementation of saving program uniforms at frame capture
* Previously we were saving every program uniform that got set,
  cumulatively.
* Now, whenever a uniform is set that program is marked as dirty and we
  fetch out the uniform values at the start of the frame and serialise them
  out.
* On replay, we create a dummy copy of the program to hold the initial
  uniform values, and copy them across to restore the frame-start values.
2014-11-11 22:54:57 +00:00
baldurk c9e74c7a56 Handle depth and stencil components in GetByteSize 2014-11-11 22:54:57 +00:00
baldurk d2afc191c9 Handle some common ARB aliases a program was requesting 2014-11-11 22:54:56 +00:00
baldurk c370c3c151 Handle GL_CUBEMAP_POSNEG_XYZ binding targets as identical to cubemap 2014-11-11 22:54:56 +00:00
baldurk b8f74610b4 Implement glShaderStorageBlockBinding 2014-11-11 22:54:56 +00:00
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