Commit Graph
63 Commits
Author SHA1 Message Date
baldurk e3a11dc453 Remove use of non-portable egrep in scripts 2016-08-26 13:44:10 +02:00
baldurk 136342b056 Add handling in GL for certain uncompressed special formats 2016-08-24 15:54:00 +02:00
baldurk ec67b41dfe Implement texture swizzling for BGRA order texture proxies on GL 2016-08-24 15:53:54 +02:00
baldurk 5f28b745a2 Format code according to newly added clang-format
_  /)
                 mo / )
                 |/)\)
                  /\_
                  \__|=
                 (    )
                 __)(__
           _____/      \\_____
          |  _     ___   _   ||
          | | \     |   | \  ||
          | |  |    |   |  | ||
          | |_/     |   |_/  ||
          | | \     |   |    ||
          | |  \    |   |    ||
          | |   \. _|_. | .  ||
          |                  ||
          |repository history||
          |                  ||
  *       | *   **    * **   |**      **
   \))ejm97/.,(//,,..,,\||(,,.,\\,.((//
2016-05-22 19:41:53 +02:00
baldurk 7b20c110ac Enable warning level4 with a couple of disabled warnings on all projects
* Unused formal parameter remains disabled, but we also disable a
  warning about being unable to generate an operator=.
* glslang remains compiled on level 3, since most of the new warnings
  aren't easily fixable so would be muted anyway.
2016-04-09 12:43:00 +02:00
baldurk 215d0c704c Check for EXT_depth_bounds_test before fetching/applying state 2016-04-02 18:21:33 +02:00
baldurk 2e0ffa7813 Batch update copyright years everywhere 2016-02-07 18:50:45 +01:00
baldurk 8b7a025853 Refactor BGRA formats to not be special (so allow any BGRA format)
* Also add ASTC and D16S8 types while in the neighbourhood
2015-11-29 22:05:26 +01:00
baldurk c7cfdcc689 Add basic support for displaying/picking S8 textures. Refs #165 2015-10-25 14:09:43 +01:00
baldurk b9ba4099ba Rename Serialise() overload that does array to SerialisePODArray()
* To emphasise that it's serialised as a blob of memory, and that
  Serialise isn't called on each member.
* Restore the ToStr()
2015-08-31 17:39:49 +02:00
baldurk fb496db764 Move ResourceId tracking to common location for all drivers to share 2015-08-23 21:44:45 +02:00
baldurk da87eaf55a Remove infinite loops clearing GL error flags in case something breaks 2015-08-05 18:47:17 +02:00
baldurk 9d98fe4197 Fix a super scary typo, using the wrong program for glGetUniformLocation 2015-06-04 22:11:36 +02:00
baldurk 2558b2cdea Add ways to detect RenderDoc being injected in D3D11 and OpenGL
* D3D11 you query for interface with UUID of
  {A7AA6116-9C8D-4BBA-9083-B4D816B71B78}. It's just IUnknown*
* GL implements GL_EXT_debug_tool with spec here:
  https://renderdoc.org/debug_tool.txt
  with DEBUG_TOOL_EXT #define'd to 0x6789, DEBUG_TOOL_NAME_EXT to 0x678A
  and DEBUG_TOOL_PURPOSE_EXT to 0x678B. For now, reporting this ext is
  enough to identify RenderDoc.
2015-04-24 22:12:30 +02:00
baldurk f576a80cf7 Update Khronos GL header files, change function signatures to match 2015-04-24 22:12:29 +02:00
baldurk 5ffb7c65a5 Hack around glCopyImageSubData being broken for compressed cubes on AMD
* Also for the hack that involves readback to CPU and reupload, make
  sure there's no pixel pack or unpack buffer bound for the duration.
2015-02-26 12:34:15 +00:00
baldurk 0796e5fbdf Handle cases where fragdata or attrib location idx is -1
* This can happen when we're copying from a source program to a dest
  program where the source is non-separable and had an attribute
  optimised out entirely, but the destination is separable and so still
  wants that attribute. In this case it'll come out in the wash and
  we can just skip it.
2015-02-25 17:28:06 +00:00
baldurk 8d54bbec32 Workaround for nvidia buggy implementation of glClearNamedFramebufferfi 2015-02-25 14:04:23 +00:00
baldurk 086cc0e491 Rejig overlays to use separable programs instead of monolithic prog
* This means the overlays should now work for separable and monolithic
  program setups.
2015-02-12 16:46:09 +00:00
baldurk dad64bf6cb Implement MakeGLFormat and add a couple of details for ResourceFormats 2015-02-11 15:13:22 +00:00
baldurk 2513eabb17 Return compressed format ResourceFormat descriptors properly 2015-02-09 10:35:07 +00:00
baldurk 4c44fc67cb Fix copy-paste error, use the right interface for getting name 2015-01-26 19:48:00 +00:00
baldurk 846a83d6b1 Set SSBO/UBO bindings by name so it's more robust
* This will work in case the binding order changes between two impls,
  and it also works if copying program state between two programs that
  might have different UBO/SSBO sets.
2015-01-26 02:07:45 +00:00
baldurk 6bc7eedfa4 Implement vertex and triangle highlighting for GL buffer viewer 2015-01-25 22:50:18 +00:00
baldurk 8318720561 Re-implement GL RenderMesh in the new terms - much simpler!
* Still missing several features:
  - solid shading of 'secondary' data
  - highlighting of vertices/faces/supporting faces
  - helpers like axis markers or frustum
  - post VS data and re-projection
2015-01-25 19:31:13 +00:00
baldurk b059e601c5 Send sampler information through to GL pipeline state for display 2015-01-16 02:49:00 +00:00
baldurk 1265b5bc6e Set up display of blend equations (and logic, overriding) 2015-01-16 00:18:34 +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 29f7234219 Emulate alpha and intensity formats the same way we do for luminance 2014-12-30 23:48:15 +00:00
baldurk 1c53c4a3e6 Support ARB_indirect_parameters properly. Bump GL serialise version 2014-12-26 15:44:51 +00:00
baldurk fd9d49f13e Add a print of current GL vendor/renderer/version when doing checks 2014-12-26 12:50:59 +00:00
baldurk f9191df92a Add some unhandled sampler types in uniform serialising 2014-12-22 22:18:20 +00:00
baldurk 3be08dbb71 Add a few more extensions we support, and some more we never will
* There are a handful of ARB and EXT extensions left that aren't in either
  the list of supported, or will-never support. These are ones that I want
  to support but haven't written the code for.
2014-12-20 19:54:51 +00:00
baldurk da93a4e0a0 Implement KHR advanced blend equation extensions 2014-12-20 19:54:50 +00:00
baldurk 00ee02eabc Implement EXT_polygon_offset_clamp 2014-12-20 19:54:49 +00:00
baldurk af4b0c1114 Update to latest Khronos headers. 2014-12-20 19:54:49 +00:00
baldurk 81a09a7323 Fix a few typos, mostly using #define enum values not typed enum 2014-12-20 19:54:49 +00:00
baldurk 7d293ddd76 Add a vendor check to avoid glGetProgramPipelineiv+GL_COMPUTE_SHADER 2014-12-14 12:17:42 +00:00
baldurk 7c663de948 Add vendor check to avoid glCopyImageSubData on <4x4 compressed mips 2014-12-14 12:17:41 +00:00
baldurk 652f3529a3 Track if a context is core or not, re-check vendor checks on core
* When a compatibility context is created (via the old CreateContext, or
  via an appropriate CreateContextAttribs call), we can still do the vendor
  checks but we want to make sure we perform them again if we ever create a
  core profile context. Note that actually *using* a compatibility context
  isn't supported at the moment, but this won't explicitly break that.
2014-12-14 12:17:41 +00:00
baldurk a984352b74 Add a vendor check to avoid querying GL_POLYGON_MODE on AMD 2014-12-14 12:17:38 +00:00
baldurk 9be802082f Add a vendor check to detect if FBOs or VAOs are actually shared
* This lets us detect if the FBO/VAO behaviour is different from the main
  spec, and so we won't miss deletes or other events if the context is
  different since we'll treat them as shared like any other object.
2014-12-11 20:30:34 +00:00
baldurk f6ab677156 Explicitly initialised global ID counter 2014-12-07 15:24:52 +00:00
baldurk 7131d39a6d Compile-time assert that GLenum is consistent size for serialising 2014-12-07 15:24:47 +00:00
baldurk 9561f88fd5 As a hack for now, don't save/restore D32F_S8 texture data
* On nvidia it seems that doing glCopyImageSubData() on a D32F_S8 texture
  can cause serious problems, so ignore it for now. We can generally get
  away with it, as usually the only depth buffer in this format is the
  'main' depth buffer, which isn't used frame-to-frame.
2014-12-05 09:28:34 +00:00
baldurk cb7dd8fa6d Check that functions are available before doing anything 2014-12-03 16:52:54 +00:00
baldurk c1287fe853 Include SAMPLER_CUBE_MAP_ARRAY in switch (as any other sampler type) 2014-12-02 00:16:29 +00:00
baldurk bf5320edae Make sure queries/conditional rendering are closed properly.
* If we do a partial replay of a frame, a query might be left open. We
  track this and make sure we close any that were left open before the next
  replay.
2014-12-01 18:32:01 +00:00
baldurk 3dfa8f17ab Fix serialising program array uniforms. 2014-12-01 18:13:28 +00:00
baldurk 9748813eb1 Use serialised program initial states to translate uniform locations
* If you're capturing and replaying on the same driver it's insanely
  unlikely that this translation will be anything other than the identity
  map, although it wouldn't be illegal to renumber locations. However this
  should allow moving captures between vendors/driver versions/platforms,
  which in the past wasn't possible because locations would change (quite
  validly) when the programs were recompiled. There might be other issues,
  but at least this one is fixed.
2014-11-30 16:05:01 +00:00