Advertisement
Guest User

R600_DEBUG notes -updated

a guest
Feb 2nd, 2016
522
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Here there be dragons!
  2. Along with debugging options (see below for a hopefully pretty complete list of possible options),
  3. additional features can be enabled on Radeon cards using the "R600_DEBUG" env var. (r600/radeonsi/amdgpu)
  4. The value of this variable can be set e.g. per individual user via the "~/.profile" config file, or for the entire machine via the "/etc/environment" config file.
  5.  
  6. Example contents of the most useful to the average user:
  7.  
  8. R600_DEBUG=sbcl,hyperz,llvm,sisched,forcedma
  9.  
  10. As of late Jan 2016, Radeonsi and AMDGPU now have the "SI Scheduler" which can be enabled by the user (rather than solely by the package maintainer) by setting "R600_DEBUG=sisched".
  11.  
  12. There may be more than this list includes. For better descriptions and to see what is enabled by default for your card, see the man pages. Certain values will require specific (usually later) versions of the software in order to work (for example, the si scheduler requires llvm 3.8+ in order to do anything)!
  13. The new SI scheduler is not enabled by default, but may be worth enabling if you like, since the option is available.
  14.  
  15. Tests on phoronix have shown improved performance, although admittedly sometimes only marginal, depending on the usecase.
  16. Such features may be subject to slight hiccups during future tweaking to the source (as expected of bleeding edge software). (What works now might not work after a patch, but then suddenly work much better...who knows!)
  17. The usual risks apply when using this software, and devs cannot be held liable. Bugs are more likely to occur with these new values, but they also present a good way to help debug them! (Double edged sword!)
  18.  
  19. Please excuse any errors, this file is intended to help curious mesa users get the most out of their AMD GPU(s).
  20.  
  21.  
  22. -LOGGING-
  23. "tex" "Print texture info"
  24. "texmip" Print texture info (mipmapped only)"
  25. "compute" Print compute info
  26. "vm" Print virtual addresses when creating resources
  27. "trace_cs" Trace cs and write rlockup_<csid>.c file with faulty cs
  28. "info" Print driver information
  29.  
  30. -SHADERS- (debugging)
  31. "fs" Print fetch shaders
  32. "vs" Print vertex shaders
  33. "gs" Print geometry shaders
  34. "ps" Print pixel shaders
  35. "cs" Print compute shaders
  36. "tcs" Print tessellation control shaders
  37. "tes" Print tessellation evaluation shaders
  38. "noir" Don't print the LLVM IR
  39. "notgsi" Don't print the TGSI
  40. "noasm" Don't print disassembled shaders
  41.  
  42. -FEATURES-
  43. "nodma" Disable asynchronous DMA
  44. "nohyperz" Disable Hyper-Z
  45. "noinvalrange" (GL uses the word INVALIDATE, gallium uses DISCARD) Disable handling of INVALIDATE_RANGE map flags
  46. "no2d" Disable 2D tiling
  47. "notiling" Disable tiling
  48. "switch_on_eop" Program WD/IA to switch on end-of-packet
  49. "precompile" Compile one shader variant at shader creation
  50. "nowc" Disable GTT write combining
  51. "check_vm" Check VM faults and dump debug information
  52. "llvm" Enable the LLVM shader compiler
  53. "sisched" Enable the SI scheduler in the LLVM backend
  54. "forcedma" Use asynchronous DMA for all operations when possible
  55. "nocpdma" Disable CP DMA
  56.  
  57. -SHADER BACKEND-
  58. "nosb" Disable sb backend for graphics shaders
  59. "sbcl" Enable sb backend for compute shaders
  60. "sbdry" Don't use optimised bytecode (just print the dumps)
  61. "sbstat" Print optimisation statistics for shaders
  62. "sbdump" Print IR dumps after some optimisation passes
  63. "sbnofallback" Abort on errors instead of fallback
  64. "sbdisasm" Use sb disassembler for shader dumps
  65. "sbsafemath" Disable unsafe math optimisations
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement