Commit Graph
68 Commits
Author SHA1 Message Date
baldurk c1408df4cd Remove wstring variants of string utils functions
* When needed on windows we convert to/from UTF-8. For most places this is easy
  enough, the callstack processing is now moved to store most data as UTF-8 in
  the first place.
2019-03-13 14:21:28 +00:00
Lionel Landwerlin 12ce67b228 Add GL Intel performance counters support
Intel published a performance query extension support defined back in
2013. This is available on Windows & Linux (in the Mesa driver). This
should provide the same types of counters as the MDAPI backend for
DX11.

Frameretrace [1] (a fork/branch of Apitrace) uses the same extension.

v2: Fix build without OpenGL
    Simplify logic to enable counters
    Warn about non enabled counters on Linux/Mesa
    Generate counter Uuid

v3: Turn asserts into errors
    Don't load perf entry points manually

v4: More clang-format

v5: Fix some Windows conversion warnings

v6: Fix errors on Windows where the driver reports an error on
    glGetPerfQueryInfoINTEL as a mean to say that the queryId cannot
    be used through the extension

v7: clang-format

v8: Initialize variable passed by pointers to GL entry points

v9: Only try to use the INTEL_performance_query on Mesa, experience
    shows the Intel Windows driver doesn't report anything useful.

[1]: https://github.com/janesma/apitrace/wiki/screen-shots
2019-02-04 15:54:33 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk 7044754065 Update GPUPerfAPI to 3.3 2019-01-23 13:44:18 +00:00
baldurk 006bf38e79 Disable BufferSecurityCheck option on renderdoc libraries 2018-12-12 23:53:35 +00:00
Amit Prakash 2db56c2a86 Remove peak clock flag in opening GPA context
* Remove peak clock flag while interrogating GPA about counter
information.
2018-12-11 11:08:28 +00:00
baldurk 3233afd390 If Intel metrics device version check fails, don't call invalid function 2018-12-03 12:13:19 +00:00
baldurk ffd24c04d4 Fix memory leak with D3D11 device not being released by intel counters 2018-11-22 19:40:06 +00:00
baldurk c3c9f82b87 Require explicit opt-in to enable RGP integration (default is not "0") 2018-11-22 14:05:26 +00:00
baldurk 122f0af3aa Add opt-in setting for RGP integration 2018-10-25 11:12:31 +01:00
baldurk a4c60f9f5b Remove RGP source from CMakeLists.txt 2018-10-08 18:48:50 +01:00
baldurk a6dda66c57 Remove compiled-in DevDriverAPI, load dll to access API 2018-10-08 14:07:44 +01:00
Igor Surmin 4a4fdb40e7 Implement Intel performance counters support for D3D11 2018-09-28 16:12:23 +01:00
baldurk 4cf423bfaa Revert pull request #1087. Closes #1096 2018-08-29 20:53:13 +01:00
isurmin 79579b85b3 fix x86 build 2018-08-29 11:58:17 +02:00
isurmin adb7df57d4 fix issues and remarks 2018-08-29 11:58:17 +02:00
isurmin 02b3cdad94 Implement support for Intel performance counters 2018-08-29 11:58:17 +02:00
baldurk 52aafd6331 Update to RGA 2.0.1 backend, support gfx900/gfx902
* This requires an updated set of plugins for the RGA binary files.
2018-08-28 18:23:57 +01:00
baldurk 5907524012 Trim trailing NULL character from returned GCN ISA string 2018-08-27 17:09:16 +01:00
baldurk a1dca66f76 Add sleep to RGP worker thread loop 2018-08-03 11:16:22 +01:00
baldurk f493cd1ea1 Update DevDriverTools repository to be880fc81 2018-05-25 08:33:12 +01:00
baldurk 7fe45cee05 Suppress technically accurate but annoying warning about unused member 2018-05-24 23:16:38 +01:00
baldurk 9702d214c0 Fix GCC8 compile warning 2018-05-24 21:53:42 +01:00
Amit Prakash c82ff2de93 Move DX12 debug layer flag out of common code
Change-Id: I5c0a80c772b470be7970abe428cfd2f7a7ea17dd
2018-05-24 21:42:30 +01:00
Amit Prakash 288e0239c2 Fix Baldur review
Change-Id: I4430d0ec658ec9859226086a879c3e134a20b5e4
2018-05-24 21:42:30 +01:00
Amit Prakash 6cf36322c1 Add GPA-v3.0
* Currently GPA is disabled for DX12 debug version

Change-Id: Id942f32c809e30e502f7513b03b72e4a9dbec0a7
2018-05-24 21:42:30 +01:00
baldurk bf09eb59a3 Update DevDriverTools repo to 21c93b7230c4188 2018-05-17 01:36:06 +01:00
baldurk 3b5b0081ab Update 3rdparty ADL and RGP repositories from upstream
* ADL is updated to common-lib-amd-ADL @ 04b97aa31
* RGP is updated to DevDriverTools @ 7772fd0f
2018-05-01 18:38:14 +01:00
baldurk d016aacb92 Add wrapper around RGP interface to expose to replay drivers 2018-04-25 19:10:47 +01:00
baldurk b0f4aebaa9 Commit RGP dependencies, building in separate project
* This is:
  - GPUOpen-Tools/DevDriverTools @ 92b3e34
  - GPUOpen-Tools/common-lib-amd-ADL @ 99cb60e
2018-04-25 10:44:53 +01:00
reinsteam 714b37ded5 Various fixes for PR
- Various style-related fixes
- Loading NvPmApi.dll from plugins directories
- Added copyright notice to newly added files
- Replaced local fixed size array of `char` with std::vector<char>
- Removed `FlushGPU`
2018-03-28 19:27:44 +01:00
reinsteam 7347a11dff Implemented data retrieval from selected NV counters 2018-03-28 19:27:44 +01:00
reinsteam 48cb7d6c49 Added a project with NVidia counters and NvPmApi header from NV Perfkit
- nv_counters.h/.cpp load NVidia counters using NvPmApi 4.4.0
2018-03-28 19:27:44 +01:00
baldurk c165a15c5c Demote context open failure to warning - could just not be AMD HW. 2018-03-01 18:45:33 +00:00
baldurk f01aab4815 Replace manual calls to GPA_LoggingCallback with RDCERR calls
* This means we get accurate line numbers for error messages.
2018-02-28 12:18:48 +00:00
herb marselas f720cd1e7d AMD GPUPerfAPI 3.0 Preview Integration.
Direct3D11, Direct3D12, OpenGL, and Vulkan supported.
Fixes Direct3D11 counter command isolation.
2018-02-28 12:10:36 +00:00
baldurk edb85d834e Check for errors when invoking AMD DXBC disassembler 2018-01-31 21:03:10 +00:00
baldurk 24db8dbffc Add an 'internal' flag when launching processes, to reduce log spam 2018-01-26 15:33:17 +00:00
baldurk 5ec9db3af1 Divide byte length by 4 to get number of DWORDs in the bytecode
* Since dxbc is a uint32_t* this needs to be the count we use.
2018-01-18 14:41:59 +00:00
baldurk 8220b98601 Remove use of renderdoc.props with git commit hash where it's not needed
* This causes a full rebuild in VS because the command line has changed
  every time you commit or checkout in git (because the git commit
  /D parameter has changed).
* Since we only need it in UI-facing projects we remove it from
  every project except qrenderdoc, core renderdoc, and renderdoccmd.
  They will still rebuild when the commit changes but technically VS is
  right to do so.
2018-01-04 21:46:41 +00:00
baldurk e305029ddd Update copyright years to 2018 2018-01-01 17:55:29 +00:00
baldurk fe4fa7138d Move the GCN disassembly to the replay controller
* This way it's uniformly supported, so e.g. we can still get it when
  the replay itself is running on android.
* To do this we just pass the 'raw' bytes, which contains the whole blob
  needed for disassembly. This means a little extra work to disassemble
  D3D blobs by doing a tiny parse of the DXBC.
2017-12-22 17:03:06 +00:00
baldurk ebaefc82a9 Normalise and make python/public interface more consistent
* We enforce a naming scheme more strongly - types, member functions,
  and enum values must be UpperCaseCamel, and member variables must be
  lowerCaseCamel. No underscores allowed.
* eventId not eventID or EID, and Id preferred to ID in general. Also
  for resourceId.
* Removed some lingering hungarian m_Foo naming.
* Some pipeline state structs that are almost identical between the
  different APIs are pulled out into common structs. Where something
  doesn't make sense (e.g. viewport enable for vulkan) it will just be
  set to a sensible default (in that case always true).
* Changed scissors to be x/y & width/height instead of sometimes
  left/top/right/bottom
* Abbreviations are discouraged, e.g. operation not op, function not
  func.
2017-12-22 13:02:36 +00:00
baldurk 8d29758851 Remove members of public structs called 'bytes'
* It is at best confusing, and at worst could cause errors by aliasing
  with the python type.
2017-12-15 17:33:53 +00:00
baldurk b492840349 Fetch git commit using LibGit2Sharp that ships with VS2015 when possible
* Thanks to https://stackoverflow.com/a/43815817/4070143
2017-11-24 18:14:24 +00:00
baldurk 276783b948 Move custom printf & string_utils out of serialise/ folder 2017-11-03 16:07:46 +00:00
baldurk 16b8a4795b Detect incompatible versions of GPA, warn and fail gracefully. 2017-10-05 12:02:33 +01:00
baldurk 554116eee4 Update AMD project to match moved/renamed files 2017-10-02 15:24:27 +01:00
Matthäus G. Chajdas 4bd282755d Update the AMD GPA integration for GPA 3.0. 2017-09-27 08:00:06 -07:00
baldurk 8833effbd8 Add reference to SPIR-V library in AMD library 2017-09-26 11:53:24 +01:00