Commit Graph

320 Commits

Author SHA1 Message Date
baldurk ce2cf6c87f Move linux_libentry.o to the end to hint static constructor order 2014-08-25 16:57:58 +01:00
baldurk 9a55bb796d Linux compile fixes 2014-08-25 16:57:02 +01:00
baldurk 61b82bbbb8 Update version number in makefiles 2014-08-25 16:54:07 +01:00
baldurk 2271c6ce44 Make installers too in autobuild 2014-08-25 15:44:29 +01:00
baldurk cb6c7b65bb hash_version.sh takes a parameter to append to the git hash
* Useful for adding -official (for version releases) or -beta
2014-08-25 12:41:31 +01:00
baldurk e68162ccb3 Bump version numbers to 0.21, as we're closer to that than 0.20 now 2014-08-25 12:41:30 +01:00
baldurk be3ee7f915 Add support for 'beta' builds
* Beta builds will be between nightlies and official releases in terms of
  stability. Tested at least to make sure there are no obvious bugs, but
  haven't been through 1-2 weeks stabilising period.
* Beta builds will upload crash reports, so I can get early warning of any
  bugs that are creeping in on master.
2014-08-25 12:41:29 +01:00
baldurk 4c6c39a609 Remove sneakily packed data before retrieving anything 2014-08-24 23:49:22 +01:00
baldurk 4cbdfb3e3a Use correct array indices, duh. 2014-08-24 23:45:34 +01:00
baldurk ec5e3ad909 Use proper stride for non-uniform formats, not compCount*compByteWidth 2014-08-24 12:39:10 +01:00
baldurk 497558f338 Display shader output as ints if that's the target format type 2014-08-24 12:38:44 +01:00
baldurk 461588ae1e Always SRGB correct colour for display 2014-08-24 02:02:54 +01:00
baldurk 7ae4c259df Get typed format before trying to do readback 2014-08-24 02:01:47 +01:00
baldurk d2188edc68 Handle viewports correctly in pixel history 2014-08-24 02:01:34 +01:00
baldurk 24ed434bcd Change up pixel history UI to show individual fragments 2014-08-24 01:00:28 +01:00
baldurk 83d13357b3 If depth/stencil is known to be unbound, don't mark it "unknown" 2014-08-24 01:00:27 +01:00
baldurk 3c4f29727c Use depth comparison from pipeline to get correct fragment post-mods
* The fragments now correctly pass/fail depth so you won't see inconsistent
  post-modification values. Precision will make this slightly incorrect
  potentially, as we use D32 instead of the native depth size (as we can't
  - D16 has no stencil version).
* Likewise this won't account for stencil failures per-fragment.
2014-08-24 01:00:26 +01:00
baldurk 072b1fe74a Copy post mod colour/depth immediately, not after intervening events 2014-08-24 01:00:26 +01:00
baldurk ae2c75fb7a Make sure primitive ID value doesn't get blended 2014-08-24 01:00:25 +01:00
baldurk 0d8135ba20 Support for B8G8R8A8, R11G11B10 and R10G10B10A2 2014-08-24 01:00:24 +01:00
baldurk 5a407bdb47 Set -2 when intra-fragment values are not available/fetched 2014-08-24 01:00:23 +01:00
baldurk 8feed73cc0 Save and restore blend state when fetching shader output value 2014-08-24 01:00:23 +01:00
baldurk e144bde4d4 Fix stride calculation 2014-08-24 01:00:22 +01:00
baldurk 22c8f749f8 Ensure proper refcounting (don't miss anything) 2014-08-24 01:00:21 +01:00
baldurk f63b89b16e Fetch primitive ID 2014-08-24 01:00:20 +01:00
baldurk 0b580f32c3 Fetch per-frag post-modification & shader output values 2014-08-24 01:00:20 +01:00
baldurk f219dc2090 Add depth state that INCR_SATs stencil, tests eq & writes depth 2014-08-24 01:00:19 +01:00
baldurk d55be5f687 Duplicate up pixel modifications based on # frags 2014-08-24 01:00:18 +01:00
baldurk 1c4eccd06e Use STENCIL_OP_INCR_SAT to count number of fragments writing 2014-08-24 01:00:17 +01:00
baldurk 5ed280ae33 Markers don't increment drawcall ID, use eventID for prev/next/parent 2014-08-24 00:59:26 +01:00
baldurk f9a38c9e1f Workaround fxc compiler bug in d3dcompiler_43 by avoiding flow control
* Old method gave:

error X8000: D3D11 Internal Compiler Error: Invalid Bytecode: Instructions
calculating derivatives across pixels, and using temp storage or indexed
values for input coordinates, are not permitted within flow control that
has a branch condition that could vary across pixels. Opcode 53 (count is
1-based).

* It seemed related to taking ddx() of things like SV_CullDistance inside
  the if(), so I refactored to not branch, and instead just avoid the
  InterlockedAdd only and when not a hit it will just write to an ignored
  element at the end of the UAV.
2014-08-24 00:42:27 +01:00
baldurk db39eafd32 Update the documentation email address 2014-08-22 08:18:33 +01:00
baldurk 4ccc7d3901 Update email in code & add menu item for nightly builds 2014-08-22 08:13:21 +01:00
baldurk c75721b24f Update email address in README 2014-08-22 08:06:23 +01:00
baldurk 8c2da527f7 A bit more tidy up and rearrangement in preparation 2014-08-21 21:48:21 +01:00
baldurk f36636998a Tidy up pixel history a bit, move shaders & states into common 2014-08-20 23:52:45 +01:00
baldurk b38e7f20d3 Speculative fix for crash with null values in TimedUpdate.TickTB 2014-08-19 22:45:29 +01:00
baldurk fc347a0235 Update to 4.5 official headers, tweak to GL enum
* GLenum enum now lists all GL_ before GLX_ and WGL_ to give priority for
  string representation.
* Also dropped eGL_UNKNOWN_ENUM for eGL_NONE as it's a little friendlier
2014-08-18 18:40:10 +01:00
baldurk 24ae01a3f7 Set rows/columns to 0 when members[] contains array values 2014-08-18 11:18:53 +01:00
baldurk 61eba9a460 Add utility functions globally for mapping shader enums <-> idx 2014-08-18 11:18:39 +01:00
baldurk 561b7a0e58 Only complain about initial states being missing for non-buffers 2014-08-18 11:01:37 +01:00
baldurk 55e0178ec9 Add quad overdraw mode. Thanks Stephen Hill (@self_shadow)!
* http://blog.selfshadow.com/2012/11/12/counting-quads/
* Quad Overdraw based on ScenePS4 from the revised implementation. The
  colours are new, up to 20 levels. Picking pixels shows the overdraw level
* Available per-pass and per-drawcall, a pass defined the same way as in
  the mesh view, drawcalls since last clear or RT change.
* List of events now passed through to RenderOverlay the same as RenderMesh
2014-08-17 15:28:51 +01:00
baldurk 8a5150297f Set the event for group marker selection to the last real drawcall 2014-08-17 15:22:11 +01:00
baldurk 1e240740c6 Mark VAOs as written when modified
* This means even non-dirty VAOs, if modified during cap frame, will have
  initial states applied properly on replay
2014-08-15 21:24:59 +01:00
baldurk d520443fd3 Remove hackish tracking of VAO chunks, mark as dirty resource instead
* The VAO will then have initial contents grabbed and applied
2014-08-15 21:22:47 +01:00
baldurk 703fbba431 Apply enabled/disabled vertex attribs too 2014-08-15 18:57:37 +01:00
baldurk deead1c90e Assert on record should only happen when writing 2014-08-15 18:57:27 +01:00
baldurk 3303cc69e1 Remove dummy locals no longer needed.
* VAO initial state is not working yet - it gets reverted because the VAOs
  aren't marked as dirty (ie. initial state not needed because replay is
  accurate at the first replay, not out of sync) and not marked as written
  mid-frame (ie. restarting and replaying again shouldn't be out of sync as
  nothing was changed).
2014-08-15 17:29:27 +01:00
baldurk f3e9e3ffed Save off and store VAO initial frame state 2014-08-15 17:10:20 +01:00
baldurk c6f4536614 Change initial contents to struct with resource/uint/byte blob
* Allows drivers to store a blob of data instead of just a ResourceType
  object for storing initial contents. The ResourceManager takes ownership
  of the memory and delete[]s it when it's done.
2014-08-15 16:59:54 +01:00