1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888
|
/*========================== begin_copyright_notice ============================
Copyright (C) 2017-2021 Intel Corporation
SPDX-License-Identifier: MIT
============================= end_copyright_notice ===========================*/
#pragma once
#include "usc_config.h"
#define USC_DBG_OFF (0x00000000)
#define USC_DBG_CRITICAL (0x00000001)
#define USC_DBG_NORMAL (0x00000002)
#define USC_DBG_VERBOSE (0x00000004)
#define USC_DBG_VERBOSE_VERBOSITY (0x00000040)
#define USC_DBG_FUNCTION (0x80000000)
#define USC_DBG_INTERFACE ((0x00010000) | USC_DBG_FUNCTION)
#define USC_DBG_HARDWARE ((0x00020000) | USC_DBG_VERBOSE)
#define USC_DBG_COMPILER ((0x00040000) | USC_DBG_VERBOSE)
#define USC_DBG_COMPILER_LIR_DUMP ((0x00001000) | USC_DBG_VERBOSE)
#define USC_DBG_COMPILER_IR_TO_LIR_TRACE ((0x00002000))
namespace USC
{
#if defined (_DEBUG) || defined (_INTERNAL)
/*****************************************************************************\
Debug structure for manual control over debug logging level.
\*****************************************************************************/
struct SDebugLevel
{
unsigned int Critical : 1;
unsigned int Normal : 1;
unsigned int Verbose : 1;
unsigned int VerboseVerbosity : 1;
unsigned int : 4;
unsigned int : 4;
unsigned int CompilerLirDump : 1;
unsigned int CompilerIRToLIRTrace : 1;
unsigned int : 2;
unsigned int Interface : 1;
unsigned int Hardware : 1;
unsigned int Compiler : 1;
unsigned int : 5;
unsigned int : 4;
unsigned int : 3;
unsigned int Function : 1;
};
/*****************************************************************************\
Debug structure that holds MsgLevel together with break on assert option.
\*****************************************************************************/
struct SDebugControl
{
bool breakOnAssert;
union
{
unsigned int MsgLevelValue;
SDebugLevel MsgLevel;
};
};
// Debug variable that holds MsgLevel together with break on assert option
// for USC.
USC_API extern SDebugControl g_DebugControl;
#endif //_DEBUG
/*****************************************************************************\
Debug structure for overriding USC behavior.
\*****************************************************************************/
struct SDebugVariables
{
///////////////////////////////////////////////////////////////////////////
// Hardware Debug Controls
///////////////////////////////////////////////////////////////////////////
unsigned int PassThroughVertexShaderEnable : 1;
unsigned int PassThroughPixelShaderEnable : 1;
unsigned int MaxSoftwareGRFRegistersOverride;
unsigned int MaxVSThreadsOverride;
unsigned int MaxGSThreadsOverride;
unsigned int MaxGSThreadsOverrideWithSO;
unsigned int MaxPSThreadsOverride;
unsigned int MaxHSThreadsOverride;
unsigned int MaxDSThreadsOverride;
unsigned int MaxCSThreadsOverride;
unsigned int MaxVSURBEntriesOverride;
unsigned int MaxGSURBEntriesOverride;
unsigned int MaxShaderScratchSpaceOverride; // Overrides the limit on the maximum scratch space
// size used by all threads in each stage of 3D pipeline.
unsigned int GSExecutionMode;
unsigned int ExtendAllSourceLiveRanges;
///////////////////////////////////////////////////////////////////////////
// Software Debug Controls
///////////////////////////////////////////////////////////////////////////
unsigned int BreakInCreateCompiler : 1;
unsigned int PrintVertexShaderKeyEnable : 1;
unsigned int PrintGeometryShaderKeyEnable : 1;
unsigned int PrintPixelShaderKeyEnable : 1;
unsigned int ReportAssertEnable : 1;
unsigned int ImprovedIsaDisassemblyEnable : 1;
unsigned int ShaderDumpEnable : 1;
unsigned int ShaderDumpToRamdisk : 1;
unsigned int PrintLirRegSetsEnable : 1;
unsigned int PrintFunctionBodyInstructionListEnable : 1;
unsigned int ShaderDumpPidDisable : 1;
unsigned int ShaderDumpDuplicatesEnable : 1;
unsigned int IsaInjectionEnable : 1;
unsigned int IsaLabelPrintingEnable : 1;
unsigned int EnableDebugFileDump : 1;
unsigned int AllDumpsInSingleFile : 1;
unsigned int OptimizationStatsEnable : 1;
unsigned int CompilationTimeDumpEnable : 1;
unsigned int QualityMetricsEnable : 1;
unsigned int CodeStatsEnable : 1;
unsigned int MemoryStatsEnable : 1;
unsigned int MemoryStatsDetailedEnable : 1;
unsigned int TimeStatsEnable : 1;
unsigned int DisablePixelShaderSampleInstructions : 1;
unsigned int DisableVertexShaderSampleInstructions : 1;
unsigned int ForceSampler2x2 : 1;
unsigned int DisableRenderTargetSurfaceState : 1;
unsigned int ForceSampleCToSample : 1;
unsigned int IllegalInstructionAfterEOTEnable : 1;
unsigned int ResetUninitializedVariablesEnable : 1;
unsigned int CompilerLogsInReleaseBuildEnable : 1;
unsigned int ISASchedulerLogs;
unsigned int RetailMessageControl;
unsigned int FullLIRDumpHashCode;
unsigned int DisableMcsFastClear;
unsigned int DisableMcsMsaa;
unsigned int ShaderDebugHashCode;
unsigned int ShaderDebugExtra;
unsigned int ShaderDebugHashCodeInKernel : 1;
unsigned int SystemThreadCacheFlushEnable : 1;
unsigned int SystemThreadCacheFlushCountOverride;
unsigned int PrintSimdMaskInLIR : 1;
unsigned int KillPixelHangWorkaroundOverrideEnable;
unsigned int KillPixelHangWorkaroundOverride; // 0-always enable message header for RT write messages
// 1-dispatch simd8 only when kill pixel enabled
// 2-thread count = 84(42 GT1) always
// 3-thread count = 84(42 GT1) when kill pixel enabled
unsigned int SendsSupportEnable : 1;
///////////////////////////////////////////////////////////////////////////
// Compiler Debug Controls
///////////////////////////////////////////////////////////////////////////
unsigned int SystemThreadEnable : 1;
unsigned int InstructionCompactionEnable : 1; // TODO: change to Override
unsigned int SIMD32CompileOverride : 1;
unsigned int SIMD32CompileEnable : 1;
unsigned int SIMD32CompileForce : 1;
unsigned int SIMD32AllowSpillFill : 1;
unsigned int SIMD16CompileOverride : 1;
unsigned int SIMD16CompileEnable : 1;
unsigned int SIMD16CompileForce : 1;
unsigned int SIMD8CompileOverride : 1;
unsigned int SIMD8CompileEnable : 1;
unsigned int CSSIMD32CompileForce : 1;
unsigned int CSSIMD16CompileForce : 1;
unsigned int CSSIMD8CompileForce : 1;
unsigned int HeaderBypassDisable : 1;
unsigned int DisableOptimizeDependencies : 1;
unsigned int DisableMergePatchConstantShaders : 1;
unsigned int DisableInstanceUnroll : 1;
unsigned int HSIndexedControlPointShaderEnable : 1;
unsigned int HSUseSingleHardwareThreadEnable : 1;
unsigned int ForceVSPullModel : 1;
unsigned int ForceGSPullModel : 1;
unsigned int ForceHSPullModel : 1;
unsigned int ForceDSPullModel : 1;
unsigned int ForceSampleUVtoZero : 1;
unsigned int ForceSkipValueNumberingForSample : 1;
unsigned int VSSIMD4x2CompileForce : 1;
unsigned int HSSIMD4x2CompileForce : 1;
unsigned int DSSIMD4x2CompileForce : 1;
unsigned int GSSIMD4x2CompileForce : 1;
unsigned int VSSIMD8CompileForce : 1;
unsigned int HSSIMD8CompileForce : 1;
unsigned int DSSIMD8CompileForce : 1; // For Gen9+ this mean SIMD8 single- and dual-patch compilation instead of SIMD4x2.
unsigned int DSSIMD8SPCompileForce : 1; // For Gen9+ only, this mean only single-patch compilation.
unsigned int GSSIMD8CompileForce : 1;
unsigned int VSSIMD8WithFullEpilogEnable : 1;
unsigned int GSSIMD8WithSpillFillCompileEnable : 1;
unsigned int HSSIMD8DualPatchModeCompileEnable : 1;
unsigned int HSSIMD8EightPatchModeCompileEnable : 1;
unsigned int DSSIMD8SingleOrDualPatchModeCompileEnable : 1;
unsigned int DisableGPGPUIndirectPayload : 1;
unsigned int LowPrecisionOverride : 1;
unsigned int LowPrecisionEnable : 1;
unsigned int SampleLdWithNativeZeroLodDisable : 1;
unsigned int SIMDExpansionEnable : 1;
unsigned int OCLSurfaceStateSpillFillEnable : 1;
unsigned int DisableHSBarrierRead : 1;
unsigned int ClearVHEnable : 1;
unsigned int ForceSamplerPointer : 1;
unsigned int ForceDoubleSamplerSlots : 1;
unsigned int URBPaddingSIMD8Disable : 1;
unsigned int ForceSendTGSMFence : 1;
unsigned int DisableRSPushConstants : 1;
unsigned int DisableRSPushConstantsCompute : 1;
unsigned int SWStencilPushConstantEnable : 1;
unsigned int AppendPaddingToISA : 1;
unsigned int CallToSubroutineCallForceEnable : 1;
unsigned int ForceCompilerInlineFunctionPolicy;
unsigned int MaxHSPatchConstantShaders;
unsigned int MaxSIMD16PixelShaderInstructionCount;
unsigned int MaxSIMD32PixelShaderInstructionCount;
unsigned int SIMD32CpiThreshold;
unsigned int OCLSIMD32InstructionThreshold;
unsigned int OCLSIMD32LIRThreshold;
unsigned int OCLSIMD32TPMThreshold;
unsigned int MaxSIMD16ComputeShaderInstructionCount;
unsigned int MaxSIMD32ComputeShaderInstructionCount;
unsigned int SamplerOffsetWorkaroundMinSampleCount;
unsigned int L3WAMaxShortVSLength;
unsigned int DoLlvmOptimize;
unsigned int ShaderTestFlagsFound;
unsigned int MaxInstructionsToFixPrecision;
unsigned int ForceShortenURBDataLenght :1;
unsigned int DisableILReflectOpts;
unsigned int DisableSIMD32DueEarlyEOTAfterDiscard :1;
unsigned int EnableResourceIndexAlwaysNonUniform :1;
// USCTester and USCLauncher use different compiler settings, e.g. USCTester does not support CB2CR on other platforms than HSW
// This is needed to pass this information from USCTester.
unsigned int DisableUSCTesterUnsupportedFeatures : 1;
///////////////////////////////////////////////////////////////////////////
// USC WA Override Controls
///////////////////////////////////////////////////////////////////////////
unsigned int WaDisable_WIZUnit_ScratchSpace;
unsigned int WaClampSamplerArrayIndex;
unsigned int WaForcePushConstantEvenReadLength;
unsigned int WaDisableHeaderBypassForPSDepthOutput;
unsigned int WaForceHeaderForKillPixInstructions;
unsigned int WaDecomposePowToLogMulExp;
unsigned int WaDisableMadSrc0Replicate;
unsigned int WaSamplerChannelDisables;
unsigned int WaUAVTypedWriteOverlapping;
unsigned int WaUAVTypedReadOverwritesAllDestChannels;
unsigned int WaUseOnlySIMD8UntypedRead;
unsigned int WaUVoffsetToZeroForLd2dms;
unsigned int WaPerThreadScratchSpaceInGPGPUIncrease;
unsigned int WaUseFDP3InsteadOfFDP2;
unsigned int WaApplyAbsToFrcInstruction;
unsigned int WaForPlusInfRoundingModeFrcInstruction;
unsigned int WaEmulateIBFEInstrucion;
unsigned int WaShaderCalculateResourceOffsets;
unsigned int WaUseThreadPayloadCompression;
unsigned int WaUnlitCentroidInterpolation;
unsigned int WaAddCallToEOTEnabled;
unsigned int WaZeroUnusedSampleDGradientsParameters;
unsigned int WaAlphaToOneOGL;
unsigned int WaOGLGSVertexReordering;
unsigned int WaOGLGSVertexReorderingTriStripAdjOnly;
unsigned int WaXScaledFormatConversion;
unsigned int WaCMPInstFlagDepClearedEarly;
unsigned int WaScalarAtomic;
unsigned int WaL3UseSamplerForLoadDualConstant;
unsigned int WaL3UseSamplerForVectorLoadScatter;
unsigned int Wa1DSurfaceSIMD4x2ArrayIndexInRAddress;
unsigned int WaBreakSimd16TernaryInstructionsIntoSimd8;
unsigned int WaGSPullModelForPatchlistInputTopology;
unsigned int WaGSSingleDispatchModeForTriangleInput;
unsigned int WaForceSIMD8ForBFIInstruction;
unsigned int WaBreakSimd16InstWhenAccIsUsedIntoSimd8;
unsigned int WaEnableDummyMovInGpgpuContextSave;
unsigned int WaClearNotificationRegInGpgpuContextSave;
unsigned int WaNotifRegSwapInGpGpuContextRestore;
unsigned int WaStoreSlmOffsetInSRDuringGpGpuPreemption;
unsigned int WaSampleGCToSampleLC;
unsigned int WaCMPInstNullDstForcesThreadSwitch;
unsigned int WaCMPInstNullDstBreaksR0Scoreboarding;
unsigned int WaForceHeaderForDualSourceBlendHi;
unsigned int WaForceHSPullModel;
unsigned int WaInsertNopToHaltDestination;
unsigned int WaForceTypeConvertF32To16ToAlign1;
unsigned int WaAdditionalMovWhenSrc1ModOnMulMach;
unsigned int WaForceMulSrc1WordToAlign1;
unsigned int WaCallForcesThreadSwitch;
unsigned int WaThreadSwitchAfterCall;
unsigned int WANOPBeetweenIndirectAdressingAndBranch;
unsigned int WaA32StatelessMessagesRequireHeader;
unsigned int WaNoA32ByteScatteredStatelessMessages;
unsigned int WaUrbAtomics;
unsigned int WaBasicCompilationForDPInstructions;
unsigned int WaHalfFloatSelNotAllowedWithSourceModifiers;
unsigned int WaLowPrecWriteRTOnlyFloat;
unsigned int WaBreakF32MixedModeIntoSimd8;
unsigned int WaDisableDSDualPatchMode;
unsigned int WaDisableNoSrcDepSetBeforeEOTSend;
unsigned int WaDstSubRegNumNotAllowedWithLowPrecPacked;
unsigned int WaHeaderRequiredOnSimd16Sample16bit;
unsigned int WaLodRequiredOnTypedMsaaUav;
unsigned int AccWrEnNotAllowedToAcc1With16bit;
unsigned int WaSendsSrc1Length0NotAllowed;
unsigned int WaDisableEuBypassOnSimd16Float16;
unsigned int WaDisableEuBypassOnSimd16Float32;
unsigned int WaStructuredBufferAsRawBufferOverride;
unsigned int WaSrc1ImmHfNotAllowed;
unsigned int WaCselUnsupported;
unsigned int WaDisableDSCaching;
unsigned int WaDisallow64BitImmMov;
unsigned int WaDisallowDFImmMovWithSimd8;
unsigned int WaEmitVtxWhenOutVtxCntIsZero;
unsigned int WaFixCentroidInterpolationRTIR16X;
unsigned int WaDisableIndirectDataForGPGPUWalker;
unsigned int WaDisableIndirectDataAndFlushGPGPUWalker;
unsigned int WaDisablePushConstantHSGS;
unsigned int WaEnableAllWriteChannelMask;
unsigned int WaGather4WithGreenChannelSelectOnR32G32Float;
unsigned int WaPreventHSTessLevelsInterference;
unsigned int WaAvoidDomainShaderCacheStall;
unsigned int WaClearArfDependenciesBeforeEot;
unsigned int WaDoNotPushConstantsForAllPulledGSTopologies;
unsigned int WaDisableDbg0Register;
unsigned int WaGrfDependecyClearInGpgpuContextRestore;
unsigned int WaRestoreFCandMSGRegistersFromUpperOword;
unsigned int WaRestoreFC4RegisterDW0fromDW1;
unsigned int WaRestoreFc0RegistersWithOffset;
unsigned int WaGrfDepClearOnOutstandingSamplerInGpgpuContextSave;
unsigned int WaStoreAcc2to9InAlign16InGpgpuContextSave;
unsigned int WaGrfScoreboardClearInGpgpuContextSave;
unsigned int WaClearFlowControlGpgpuContextSave;
unsigned int WaClearCr0SpfInGpgpuContextRestore;
unsigned int WaSendsSrc1SizeLimitWhenEOT;
unsigned int WaDisableMixedModeLog;
unsigned int WaDisableMixedModePow;
unsigned int WaDisableMixedModeFdiv;
unsigned int WaFloatMixedModeSelNotAllowedWithPackedDestination;
unsigned int WaDisableNativeDWxDWMultiplication;
unsigned int WaForceMinMaxGSThreadCount;
unsigned int WaIntegerDivisionSourceModifierNotSupported;
unsigned int WaDisableLowPrecisionWriteRTRepData;
unsigned int WAResetN0AfterRenderTargetRead;
unsigned int WADisableWriteCommitForPageFault; // Disables Write commit for page fault
unsigned int WaDisableDeepLoopsUnrolling;
unsigned int EnableRegSizeConsistencyCheck :1; // Enables RegSizeConsistencyCheck
unsigned int EnableUntypedSrfRead :1;
};
#if ( defined _DEBUG ) || ( defined _INTERNAL )
// Debug variable for overriding USC behavior.
USC_API extern SDebugVariables g_DebugVariables;
#endif // defined _DEBUG || defined _INTERNAL
/*****************************************************************************\
MACRO: USC_RV_Declare
PURPOSE: Declares a new entry in the global registry table.
\*****************************************************************************/
#define USC_RV_Declare(type, name, value, subkey, description) \
struct SRegistryEntry##name : public SRegistryEntry \
{ \
SRegistryEntry##name() \
: SRegistryEntry(value, false, #name, subkey, #type, description, USC_RV_SetGroup) \
{ \
} \
} name
#define DGB_VAR_INITIAL_VALUE 0xCCCCCCCC
/*****************************************************************************\
MACRO: USC_RV_USCWAOverrideControl
PURPOSE: Declares a new control debug variable which can be use to override
workaround related to USC.
\*****************************************************************************/
#define USC_RV_USCWAOverrideControl( name ) \
USC_RV_Declare( DWORD, name, DGB_VAR_INITIAL_VALUE, "", "" )
/*****************************************************************************\
MACRO: USC_RV_DeclareCompilerControl
PURPOSE: Declares a new compiler control debug variable meta data, one per
shader unit
\*****************************************************************************/
#define USC_RV_DeclareCompilerControl( type, name, value, subkey, description ) \
USC_RV_Declare( type, VS_##name, value, subkey, description ); \
USC_RV_Declare( type, GS_##name, value, subkey, description ); \
USC_RV_Declare( type, PS_##name, value, subkey, description ); \
USC_RV_Declare( type, HS_##name, value, subkey, description ); \
USC_RV_Declare( type, DS_##name, value, subkey, description ); \
USC_RV_Declare( type, CS_##name, value, subkey, description )
/*****************************************************************************\
STRUCT: SRegistryVariable
PURPOSE: Defines data for holding/defining registry variables
\*****************************************************************************/
struct SRegistryEntry
{
SRegistryEntry(
unsigned int in_value,
bool in_isSet,
const char* in_pName,
const char* in_pSubKey,
const char* in_pType,
const char* in_pDescription,
const char* in_pGroup)
: Value(in_value),
IsSet(in_isSet),
pName(in_pName),
pSubKey(in_pSubKey),
pType(in_pType),
pDescription(in_pDescription),
pGroup(in_pGroup)
{
}
unsigned int Value;
bool IsSet;
const char* pName;
const char* pSubKey;
const char* pType;
const char* pDescription;
const char* pGroup;
};
/*****************************************************************************\
STRUCT: Global definition for the USC registry variables.
\*****************************************************************************/
struct SUSCRegistryVariables
{
// Only use USC_RV_Declare macros in this structure. Any other data declaration will break the
// functionality when parsing this data.
#define USC_RV_SetGroup "DebugVariables"
USC_RV_Declare( bool, PassThroughVertexShaderEnable, false, "", " Doesn't do anything, just pass through the default values" );
USC_RV_Declare( bool, PassThroughPixelShaderEnable , false, "", " Doesn't do anything, just pass through the default values" );
USC_RV_Declare( dword, MaxSoftwareGRFRegistersOverride, 0, "", " Sets maximum number of software registers(max is 128)" );
USC_RV_Declare( dword, MaxVSThreadsOverride , 0, "", " Max number of Vertex Shader thread" );
USC_RV_Declare( dword, MaxGSThreadsOverride , 0, "", " Max number of Geometry Shader thread" );
USC_RV_Declare( dword, MaxGSThreadsOverrideWithSO , 0, "", " Max number of Geometry Shader threads when stream output is enabled" );
USC_RV_Declare( dword, MaxPSThreadsOverride , 0, "", " Max number of Pixel Shader thread" );
USC_RV_Declare( dword, MaxHSThreadsOverride , 0, "", " Max number of Hull Shader thread " );
USC_RV_Declare( dword, MaxDSThreadsOverride , 0, "", " Max number of Domain Shader thread " );
USC_RV_Declare( dword, MaxCSThreadsOverride , 0, "", " Max number of Compute Shader thread " );
USC_RV_Declare( dword, MaxVSURBEntriesOverride, 0, "", " Max number of Vertex Shader URB entries" );
USC_RV_Declare( dword, MaxGSURBEntriesOverride, 0, "", " Max number of Geometry Shader URB entries" );
USC_RV_Declare( dword, MaxShaderScratchSpaceOverride, 0, "", " Maximum amount of scratch space to be used by all threads. " );
USC_RV_Declare( dword, GSExecutionMode, 0xffffffff, "", " Mode of GS compilation. Set 0 for single mode or 1 for dual mode. " );
USC_RV_Declare( dword, ExtendAllSourceLiveRanges, 0, "", "" );
USC_RV_Declare( bool, IllegalInstructionAfterEOTEnable, false, "", "Enables debug/release internal driver to insert illegal instruction at the end of each kernel. " );
USC_RV_Declare( bool, BreakInCreateCompiler, false, "", "Will cause halt on breakpoint situated in CreateCompiler. " );
USC_RV_Declare( bool, PrintVertexShaderKeyEnable , false, "", "Enables the printing of different vertex shader keys" );
USC_RV_Declare( bool, PrintGeometryShaderKeyEnable , false, "", "Enables the printing of different geometry shader keys" );
USC_RV_Declare( bool, PrintPixelShaderKeyEnable , false, "", "Enables the printing of different pixel shader keys " );
USC_RV_Declare( bool, ShaderDumpEnable , false, "", "Enables debug/release driver to dump IL and ISA shaders to GHAL3D_OUTPUT_DIRECTORY" );
USC_RV_Declare( bool, ShaderDumpToRamdisk, false, "", "Enables debug/release driver to dump IL and ISA shaders to ramdisk defined in system environmental variable. Works only with ShaderDumpEnable flag, used only for Jenkins automatization purposes. " );
USC_RV_Declare( bool, PrintLirRegSetsEnable, false, "", "Enables/Disables printing LIR reg sets (e.g. Live-In, Live-Out, etc) in LIR shader dumps" );
USC_RV_Declare( bool, PrintFunctionBodyInstructionListEnable, false, "", "" );
USC_RV_Declare( bool, ShaderDumpPidDisable , false, "", "Enables adding PID to the name of shader dump directory" );
USC_RV_Declare( bool, ShaderDumpDuplicatesEnable , false, "", "Enables dumping duplicate shader dumps. Works only with ShaderDumpEnable flag." );
USC_RV_Declare( bool, IsaInjectionEnable , false, "", "Enables loading of kernels precompiled with IsaASM." );
USC_RV_Declare( bool, IsaLabelPrintingEnable , true, "", "Enables using Labels instead of JIP and UIP numbers." );
USC_RV_Declare( bool, EnableDebugFileDump , false, "", "Enables dumping debug output to file. " );
USC_RV_Declare( bool, AllDumpsInSingleFile, false, "", "All dumps will be dumped into one file. ");
USC_RV_Declare( bool, OptimizationStatsEnable, false, "", "Enables counting optimizations statistics. " );
USC_RV_Declare( bool, CompilationTimeDumpEnable , false, "", "Enables compilation time dump. " );
USC_RV_Declare( bool, QualityMetricsEnable , false, "", "Enables computing Shader Quality Metrics. " );
USC_RV_Declare( bool, TimeStatsEnable, false, "", "Enables computing time statisics. " );
USC_RV_Declare( bool, DisablePixelShaderSampleInstructions, false, "", "Disables sample Pixel shader instructions for debug purposes" );
USC_RV_Declare( bool, ForceSampler2x2, false, "", "" );
USC_RV_Declare( bool, DisableRenderTargetSurfaceState, false, "", "" );
USC_RV_Declare( bool, ForceSampleCToSample, false, "", "" );
USC_RV_Declare( bool, ResetUninitializedVariablesEnable, false, "", "Enables initialization of all uninitialized variables" );
USC_RV_Declare( bool, CompilerLogsInReleaseBuildEnable, false, "", "Enables some compiler logs in release-internal builds" );
USC_RV_Declare( dword, ISASchedulerLogs, 0, "", "Enables ISA scheduler logs: 1 - timings only, 2 - summary file " );
USC_RV_Declare( dword, RetailMessageControl, 0, "", "" );
USC_RV_Declare( dword, FullLIRDumpHashCode , 0, "", "" );
USC_RV_Declare( bool, DisableMcsFastClear , false, "", "Runs without color fast clear" );
USC_RV_Declare( bool, DisableMcsMsaa, false, "", "Runs without MSAA compression" );
USC_RV_Declare( dword, ShaderDebugHashCode , 0, "", "The driver will set a breakpoint in the first instruction of the shader which has the provided hash code. It works only when the value is different then 0 and SystemThreadEnable is set to TRUE." );
USC_RV_Declare( dword, ShaderDebugExtra, 0, "", "Bits 0-5: flags for setting breakpoint in VS,HS,DS,GS,PS,CS. Bits 16-31 contain zero-based number of ISA instruction to set a breakpoint. Remained bits are unused.");
USC_RV_Declare( bool, ShaderDebugHashCodeInKernel, false, "", "" );
USC_RV_Declare( bool, SystemThreadCacheFlushDisable, false, "", "" );
USC_RV_Declare( dword, SystemThreadCacheFlushCountOverride , 0, "", "" );
USC_RV_Declare( bool, PrintSimdMaskInLIR, false, "", "Prints the destination SIMD mask in the LIR dump" );
USC_RV_Declare( bool, KillPixelHangWorkaroundOverrideEnable, false, "", "" );
USC_RV_Declare( dword, KillPixelHangWorkaroundOverride, 0, "", "" );
USC_RV_Declare( bool, SendsSupportEnable, false, "", "Enables Sends instruction support for Gen9+." );
USC_RV_Declare( bool, SystemThreadEnable, false, "", "This key forces software to create a system thread. The system thread may still be created by software even if this control is set to false. The system thread is invoked if either the software requires exception handling or if kernel debugging is active and a breakpoint is hit." );
USC_RV_Declare( bool, InstructionCompactionEnable, true, "", "Enables instruction compaction capability" );
USC_RV_Declare( bool, SIMD32CompileOverride, false, "", "Overrides current SIMD32 settings with regkey settings for Pixel Shaders." );
USC_RV_Declare( bool, SIMD32CompileEnable, true, "", "Enables/Disables SIMD32 Compile. If we compile SIMD32 we also need to compile SIMD16 Note: JIT compiler may use additional heuristics which will suppress SIMD32 kernels with this settings (for example SIMD32 kernels will not be generated if there is already SIMD16 kernel which hides IO latencies)." );
USC_RV_Declare( bool, SIMD32CompileForce, false, "", "Forces SIMD32 compile, all JIT heuristics are bypassed. SIMD32 kernels will not be generated only if SIMD32AllowSpillFill flag is set to FALSE and SIMD32 kernel would require spill-fills." );
USC_RV_Declare( bool, SIMD32AllowSpillFill, false, "", "Allow / disallow SIMD32 compilation with spill-fills" );
USC_RV_Declare( bool, SIMD16CompileOverride, false, "", "Overrides current SIMD16 settings with regkey settings" );
USC_RV_Declare( bool, SIMD16CompileEnable, true, "", "Enables/Disables SIMD16 Compile" );
USC_RV_Declare( bool, SIMD16CompileForce, false, "", "Forces SIMD16 compile " );
USC_RV_Declare( bool, SIMD8CompileOverride, false, "", "Overrides current SIMD8 settings with regkey settings" );
USC_RV_Declare( bool, SIMD8CompileEnable, true, "", "Enables/Disables SIMD8 Compile" );
USC_RV_Declare( bool, CSSIMD32CompileForce, false, "", "Forces SIMD32 compilation of compute shaders (may result in spill-fills)." );
USC_RV_Declare( bool, CSSIMD16CompileForce, false, "", "Forces SIMD16 compilation of compute shaders (may result in spill-fills)." );
USC_RV_Declare( bool, CSSIMD8CompileForce, false, "", "Forces SIMD8 compilation of compute shaders (may result in spill-fills)." );
USC_RV_Declare( bool, HeaderBypassDisable, false, "", "" );
USC_RV_Declare( bool, DisableOptimizeDependencies, false, "", "" );
USC_RV_Declare( bool, DisableMergePatchConstantShaders, false, "", "Set to disable merging Patch Constant Hull Shaders" );
USC_RV_Declare( bool, DisableInstanceUnroll, false, "", "Set to disable Hull Shader instance unrolling optimization" );
USC_RV_Declare( bool, HSIndexedControlPointShaderEnable, true, "", "Enable/Disable Hull Shader pass-through Control Point phase to use indexing" );
USC_RV_Declare( bool, HSUseSingleHardwareThreadEnable , true, "", "Enable/Disable Hull Shader single thread compile heuristic" );
USC_RV_Declare( bool, ForceVSPullModel , false, "", "" );
USC_RV_Declare( bool, ForceGSPullModel , false, "", "" );
USC_RV_Declare( bool, ForceHSPullModel , false, "", "" );
USC_RV_Declare( bool, ForceDSPullModel , false, "", "" );
USC_RV_Declare( bool, ForceSampleUVtoZero, false, "", "" );
USC_RV_Declare( bool, ForceSkipValueNumberingForSample, false, "", "" );
USC_RV_Declare( bool, VSSIMD4x2CompileForce, false, "", "" );
USC_RV_Declare( bool, HSSIMD4x2CompileForce, false, "", "" );
USC_RV_Declare( bool, DSSIMD4x2CompileForce, false, "", "" );
USC_RV_Declare( bool, GSSIMD4x2CompileForce, false, "", "" );
USC_RV_Declare( bool, VSSIMD8CompileForce, false, "", "" );
USC_RV_Declare( bool, HSSIMD8CompileForce, false, "", "" );
USC_RV_Declare( bool, DSSIMD8CompileForce, false, "", "" );
USC_RV_Declare( bool, DSSIMD8SPCompileForce, false, "", "" );
USC_RV_Declare( bool, GSSIMD8CompileForce, false, "", "" );
USC_RV_Declare( bool, VSSIMD8WithFullEpilogEnable, false, "", "Enabling this causes sending all parts of Vertex Header and position as paramter for DX9 from VS" );
USC_RV_Declare( bool, HSSIMD8DualPatchModeCompileEnable, false, "", "" );
USC_RV_Declare( bool, HSSIMD8EightPatchModeCompileEnable, false, "", "For Gen9+ this mean SIMD8 single- and dual-patch compilation instead of SIMD4x2" );
USC_RV_Declare( bool, DSSIMD8SingleOrDualPatchModeCompileEnable, false, "", "For Gen9+ only, this mean only single-patch compilation" );
USC_RV_Declare( dword, MaxHSPatchConstantShaders , 0, "", "Set the upper limit for the number of Patch Constant Hull Shaders" );
USC_RV_Declare( dword, MaxSIMD16PixelShaderInstructionCount, 8192, "", "SIMD16 kernels will be disabled if their instruction count exceeds the default number" );
USC_RV_Declare( dword, MaxSIMD32PixelShaderInstructionCount, 8192, "", "SIMD32 kernels will be disabled if their instruction count exceeds the default number" );
USC_RV_Declare( dword, SIMD32CpiThreshold, 150, "", "(0 for VLV2) SIMD32 kernels will be disabled if SIMD16 CPI will be lower than number of threads per EU on given platform times this number/100" );
USC_RV_Declare( dword, OCLSIMD32InstructionThreshold, 2048, "", "Compute Shader Compiler will attempt SIMD32 if the number of IL instructions is below this number. Currently used by OpenCL only." );
USC_RV_Declare( dword, OCLSIMD32LIRThreshold, 65, "", "Compute Shader Compiler will attempt SIMD32 with any extra heuristic checks if the number of LIR instructions is below this number. Currently used by OpenCL only." );
USC_RV_Declare( dword, OCLSIMD32TPMThreshold, 256, "", "Compute Shader Compiler will attempt SIMD32 if the TPM (thread private memory) used by the shader is less than or equal to this number." );
USC_RV_Declare( dword, MaxSIMD16ComputeShaderInstructionCount, 8192, "", "" );
USC_RV_Declare( dword, MaxSIMD32ComputeShaderInstructionCount , 4096, "", "" );
USC_RV_Declare( dword, SamplerOffsetWorkaroundMinSampleCount, 4, "", "" );
USC_RV_Declare( dword, L3WAMaxShortVSLength, 0xffff, "", "" );
USC_RV_Declare( bool, DoLlvmOptimize, false, "", "" );
USC_RV_Declare( bool, DisableGPGPUIndirectPayload, false, "", "" );
USC_RV_Declare( bool, LowPrecisionOverride, false, "", " Overrides support for low precision values" );
USC_RV_Declare( bool, LowPrecisionEnable, true, "", " Enables support for low precision values" );
USC_RV_Declare( bool, SampleLdWithNativeZeroLodDisable, false, "", " Disables usage of native HW sample_lz, sample_c_lz_and ld_lz. Instead sample, sample_c and ld with LOD 0 are used." );
USC_RV_Declare( bool, SIMDExpansionEnable, true, "", "When enabled simd expansion will be performed while compiling shader to higher simd (compile time optimization)" );
USC_RV_Declare( bool, OCLSurfaceStateSpillFillEnable, false, "", "Set to enable OpenCL spill/fills to go to a surface instead of stateless memory." );
USC_RV_Declare( dword, MaxInstructionsToFixPrecision, 2, "", " Maximum number of instructions that can have degraded performence due to precision change before compiler decides to insert converting MOV" );
USC_RV_Declare( bool, ForceShortenURBDataLenght, false, "", "Forces shorten URBData lenght" );
USC_RV_Declare( bool, DisableILReflectOpts, false, "", "Disable T-Rex Reflection Optimization");
USC_RV_Declare( bool, DisableSIMD32DueEarlyEOTAfterDiscard, false, "","Disable SIMD32 Due Early EOT After Discard");
USC_RV_Declare( bool, EnableResourceIndexAlwaysNonUniform, false, "", "D3d12 - Treat all indexing as they are maked non-uniform");
USC_RV_Declare( bool, EnableRegSizeConsistencyCheck, true, "","Enables RegSizeConsistencyCheck");
USC_RV_Declare( bool, EnableUntypedSrfRead, false, "", "Common optimization for all shaders. Use untyped surface read message to load scattered constant buffer.");
USC_RV_Declare( bool, DisableHSBarrierRead, false, "", "Removes pre-barrier URB read intended to force URB sync." );
USC_RV_Declare( bool, ClearVHEnable, false, "", "Clear VH DW0..DW7 for VS,DS,GS." );
USC_RV_Declare( bool, ForceSamplerPointer, false, "", "Forces sampler instructions to use sampler table pointer " );
USC_RV_Declare( bool, ForceDoubleSamplerSlots, false, "", "Forces sampler instructions to use double spaced slots in sampler table access" );
USC_RV_Declare( bool, URBPaddingSIMD8Disable, false, "", "Disables URB padding for shaders compiled in SIMD8 mode." );
USC_RV_Declare( bool, ForceSendTGSMFence, false, "", "Send a memory fence for TGSM/SLM even if this it not required for the device." );
USC_RV_Declare( bool, DisableRSPushConstants, false, "", "Control whether CBs for RC/RD/samplers are used for graphics stages. Must be kept in line with IGFX\\D3D_\\DisableRSPushConstants." );
USC_RV_Declare( bool, DisableRSPushConstantsCompute, false, "", "Control whether CBs for RC/RD/samplers are used for compute stage. Must be kept in line with (as opposite to) IGFX\\D3D_\\UseRTLPushConstantsCompute." );
USC_RV_Declare( bool, SWStencilPushConstantEnable, false, "", "Whether SW stencil should use push or pull constants" );
USC_RV_Declare( bool, CallToSubroutineCallForceEnable, false, "", "Forces replacing simple CALL with SUBROUTINE_CALL" );
USC_RV_Declare( dword, ForceCompilerInlineFunctionPolicy, 0, "", "Inling function policies: 0 - do not force, 1 - never, 2 - always, 3 - heuristic, 4 - when possible" );
#undef USC_RV_SetGroup
#define USC_RV_SetGroup "USCWAOverrideControl"
USC_RV_USCWAOverrideControl( WaDisable_WIZUnit_ScratchSpace );
USC_RV_USCWAOverrideControl( WaClampSamplerArrayIndex );
USC_RV_USCWAOverrideControl( WaForcePushConstantEvenReadLength );
USC_RV_USCWAOverrideControl( WaDisableHeaderBypassForPSDepthOutput );
USC_RV_USCWAOverrideControl( WaForceHeaderForKillPixInstructions );
USC_RV_USCWAOverrideControl( WaDecomposePowToLogMulExp );
USC_RV_USCWAOverrideControl( WaDisableMadSrc0Replicate );
USC_RV_USCWAOverrideControl( WaSamplerChannelDisables );
USC_RV_USCWAOverrideControl( WaUAVTypedWriteOverlapping );
USC_RV_USCWAOverrideControl( WaUAVTypedReadOverwritesAllDestChannels );
USC_RV_USCWAOverrideControl( WaUseOnlySIMD8UntypedRead );
USC_RV_USCWAOverrideControl( WaUVoffsetToZeroForLd2dms );
USC_RV_USCWAOverrideControl( WaPerThreadScratchSpaceInGPGPUIncrease );
USC_RV_USCWAOverrideControl( WaUseFDP3InsteadOfFDP2 );
USC_RV_USCWAOverrideControl( WaApplyAbsToFrcInstruction );
USC_RV_USCWAOverrideControl( WaForPlusInfRoundingModeFrcInstruction );
USC_RV_USCWAOverrideControl( WaEmulateIBFEInstrucion );
USC_RV_USCWAOverrideControl( WaShaderCalculateResourceOffsets );
USC_RV_USCWAOverrideControl( WaUseThreadPayloadCompression );
USC_RV_USCWAOverrideControl( WaUnlitCentroidInterpolation );
USC_RV_USCWAOverrideControl( WaAddCallToEOTEnabled );
USC_RV_USCWAOverrideControl( WaZeroUnusedSampleDGradientsParameters );
USC_RV_USCWAOverrideControl( WaAlphaToOneOGL );
USC_RV_USCWAOverrideControl( WaOGLGSVertexReordering );
USC_RV_USCWAOverrideControl( WaOGLGSVertexReorderingTriStripAdjOnly );
USC_RV_USCWAOverrideControl( WaXScaledFormatConversion );
USC_RV_USCWAOverrideControl( WaCMPInstFlagDepClearedEarly );
USC_RV_USCWAOverrideControl( WaScalarAtomic );
USC_RV_USCWAOverrideControl( WaL3UseSamplerForLoadDualConstant );
USC_RV_USCWAOverrideControl( WaL3UseSamplerForVectorLoadScatter );
USC_RV_USCWAOverrideControl( Wa1DSurfaceSIMD4x2ArrayIndexInRAddress );
USC_RV_USCWAOverrideControl( WaBreakSimd16TernaryInstructionsIntoSimd8 );
USC_RV_USCWAOverrideControl( WaGSPullModelForPatchlistInputTopology );
USC_RV_USCWAOverrideControl( WaGSSingleDispatchModeForTriangleInput );
USC_RV_USCWAOverrideControl( WaForceSIMD8ForBFIInstruction );
USC_RV_USCWAOverrideControl( WaBreakSimd16InstWhenAccIsUsedIntoSimd8 );
USC_RV_USCWAOverrideControl( WaEnableDummyMovInGpgpuContextSave );
USC_RV_USCWAOverrideControl( WaClearNotificationRegInGpgpuContextSave );
USC_RV_USCWAOverrideControl( WaNotifRegSwapInGpGpuContextRestore );
USC_RV_USCWAOverrideControl( WaStoreSlmOffsetInSRDuringGpGpuPreemption );
USC_RV_USCWAOverrideControl( WaSampleGCToSampleLC );
USC_RV_USCWAOverrideControl( WaCMPInstNullDstForcesThreadSwitch );
USC_RV_USCWAOverrideControl( WaCMPInstNullDstBreaksR0Scoreboarding );
USC_RV_USCWAOverrideControl( WaForceHeaderForDualSourceBlendHi );
USC_RV_USCWAOverrideControl( WaForceHSPullModel );
USC_RV_USCWAOverrideControl( WaInsertNopToHaltDestination );
USC_RV_USCWAOverrideControl( WaForceTypeConvertF32To16ToAlign1 );
USC_RV_USCWAOverrideControl( WaAdditionalMovWhenSrc1ModOnMulMach );
USC_RV_USCWAOverrideControl( WaForceMulSrc1WordToAlign1 );
USC_RV_USCWAOverrideControl( WaCallForcesThreadSwitch );
USC_RV_USCWAOverrideControl( WaThreadSwitchAfterCall );
USC_RV_USCWAOverrideControl( WANOPBeetweenIndirectAdressingAndBranch );
USC_RV_USCWAOverrideControl( WaA32StatelessMessagesRequireHeader );
USC_RV_USCWAOverrideControl( WaNoA32ByteScatteredStatelessMessages );
USC_RV_USCWAOverrideControl( WaUrbAtomics );
USC_RV_USCWAOverrideControl( WaBasicCompilationForDPInstructions );
USC_RV_USCWAOverrideControl( WaHalfFloatSelNotAllowedWithSourceModifiers );
USC_RV_USCWAOverrideControl( WaLowPrecWriteRTOnlyFloat );
USC_RV_USCWAOverrideControl( WaBreakF32MixedModeIntoSimd8 );
USC_RV_USCWAOverrideControl( WaDisableDSDualPatchMode );
USC_RV_USCWAOverrideControl( WaDisallow64BitImmMov );
USC_RV_USCWAOverrideControl( WaDisallowDFImmMovWithSimd8 );
USC_RV_USCWAOverrideControl( WaDisableNoSrcDepSetBeforeEOTSend );
USC_RV_USCWAOverrideControl( WaDstSubRegNumNotAllowedWithLowPrecPacked );
USC_RV_USCWAOverrideControl( WaHeaderRequiredOnSimd16Sample16bit );
USC_RV_USCWAOverrideControl( WaLodRequiredOnTypedMsaaUav );
USC_RV_USCWAOverrideControl( AccWrEnNotAllowedToAcc1With16bit );
USC_RV_USCWAOverrideControl( WaSendsSrc1Length0NotAllowed );
USC_RV_USCWAOverrideControl( WaDisableEuBypassOnSimd16Float16 );
USC_RV_USCWAOverrideControl( WaDisableEuBypassOnSimd16Float32 );
USC_RV_USCWAOverrideControl( WaStructuredBufferAsRawBufferOverride );
USC_RV_USCWAOverrideControl( WaSrc1ImmHfNotAllowed );
USC_RV_USCWAOverrideControl( WaCselUnsupported );
USC_RV_USCWAOverrideControl( WaDisableDSCaching );
USC_RV_USCWAOverrideControl( WaEmitVtxWhenOutVtxCntIsZero );
USC_RV_USCWAOverrideControl( WaFixCentroidInterpolationRTIR16X );
USC_RV_USCWAOverrideControl( WaDisableIndirectDataForGPGPUWalker );
USC_RV_USCWAOverrideControl( WaDisableIndirectDataAndFlushGPGPUWalker );
USC_RV_USCWAOverrideControl( WaDisablePushConstantHSGS );
USC_RV_USCWAOverrideControl( WaEnableAllWriteChannelMask );
USC_RV_USCWAOverrideControl( WaGather4WithGreenChannelSelectOnR32G32Float );
USC_RV_USCWAOverrideControl( WaPreventHSTessLevelsInterference );
USC_RV_USCWAOverrideControl( WaAvoidDomainShaderCacheStall );
USC_RV_USCWAOverrideControl( WaClearArfDependenciesBeforeEot );
USC_RV_USCWAOverrideControl( WaDoNotPushConstantsForAllPulledGSTopologies );
USC_RV_USCWAOverrideControl( WaDisableDbg0Register );
USC_RV_USCWAOverrideControl( WaGrfDependecyClearInGpgpuContextRestore );
USC_RV_USCWAOverrideControl( WaRestoreFCandMSGRegistersFromUpperOword );
USC_RV_USCWAOverrideControl( WaRestoreFC4RegisterDW0fromDW1 );
USC_RV_USCWAOverrideControl( WaRestoreFc0RegistersWithOffset );
USC_RV_USCWAOverrideControl( WaGrfDepClearOnOutstandingSamplerInGpgpuContextSave );
USC_RV_USCWAOverrideControl( WaStoreAcc2to9InAlign16InGpgpuContextSave );
USC_RV_USCWAOverrideControl( WaGrfScoreboardClearInGpgpuContextSave );
USC_RV_USCWAOverrideControl( WaClearFlowControlGpgpuContextSave );
USC_RV_USCWAOverrideControl( WaClearCr0SpfInGpgpuContextRestore );
USC_RV_USCWAOverrideControl( WaSendsSrc1SizeLimitWhenEOT );
USC_RV_USCWAOverrideControl( WaDisableMixedModeLog );
USC_RV_USCWAOverrideControl( WaDisableMixedModePow );
USC_RV_USCWAOverrideControl( WaDisableMixedModeFdiv );
USC_RV_USCWAOverrideControl( WaFloatMixedModeSelNotAllowedWithPackedDestination );
USC_RV_USCWAOverrideControl( WaDisableNativeDWxDWMultiplication );
USC_RV_USCWAOverrideControl( WaForceMinMaxGSThreadCount );
USC_RV_USCWAOverrideControl( WaIntegerDivisionSourceModifierNotSupported );
USC_RV_USCWAOverrideControl( WaDisableLowPrecisionWriteRTRepData );
USC_RV_USCWAOverrideControl( WADisableWriteCommitForPageFault );
USC_RV_USCWAOverrideControl( WaDisableDeepLoopsUnrolling );
#undef USC_RV_SetGroup
//NOTE: no default values in first step of this implementation.
#define USC_RV_SetGroup "ShaderCompilerControls"
USC_RV_DeclareCompilerControl( bool, IndirectTemporaryRemovalEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CallCndTranslationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, LoopUnrollingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ILPatternMatchingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ConditionalExpressionSimplificationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, TrivialSwitchRemovalEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, TrivialIfRemovalEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, EarlyEOTAfterDiscardEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, SwitchTranslationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, EarlyReturnRemovalEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, InlineSubstitutionEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CallToSubroutineCallEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ConstantBufferToConstantRegisterEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ConstantBufferToConstantRegisterLDRAWEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ParseOpcodesToPrecModifierEnable, true, "", "" );
USC_RV_DeclareCompilerControl( bool, IndexedTempGRFCachingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ILConstantFoldingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ILConstantFoldingAggressive, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PrintfExpansionEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, TranslateVendorExtensionsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, RemoveDeadOutputEnable, false, "", "" );
USC_RV_DeclareCompilerControl( dword, MaxLoopUnrollLength, 0, "", "" );
USC_RV_DeclareCompilerControl( dword, MaxConstantBufferPairs, 0, "", "" );
USC_RV_DeclareCompilerControl( dword, PartialUnrollFactor, 0, "", "" );
USC_RV_DeclareCompilerControl( bool, ProcessDynamicResourceIndexingEnable, true, "", "" );
USC_RV_DeclareCompilerControl( dword, IfConversionLength, 0, "", "" );
#undef USC_RV_SetGroup
#define USC_RV_SetGroup "SShaderPatternMatchControls"
USC_RV_DeclareCompilerControl( bool, FMulFAddToFMad, false, "", "" );
USC_RV_DeclareCompilerControl( bool, MovFCmpBranchToMovFCmp, false, "", "" );
USC_RV_DeclareCompilerControl( bool, MovCndToMov, false, "", "" );
USC_RV_DeclareCompilerControl( bool, LDStructuredScalarToVector, false, "", "" );
USC_RV_DeclareCompilerControl( bool, FLogFExp2ScalarToVector, false, "", "" );
USC_RV_DeclareCompilerControl( bool, MovFCmpToFMax, false, "", "" );
USC_RV_DeclareCompilerControl( bool, FCmpGtToFMaxOrFCmpLtToFMin, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PreserveFunctionRetMovs, false, "", "" );
USC_RV_DeclareCompilerControl( bool, IfDiscardToDiscardCND, false, "", "" );
USC_RV_DeclareCompilerControl( bool, IfBranchFlattening, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ContinueCndRemoval, false, "", "" );
USC_RV_DeclareCompilerControl( bool, LDRawPtrToIndexedCB, false, "", "" );
#undef USC_RV_SetGroup
#define USC_RV_SetGroup "KernelCompilerControls"
USC_RV_DeclareCompilerControl( bool, ValueNumberingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, BlockLoadDirectConstantsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, BlockLoadIndirectConstantsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, BlockLoadScatteredConstantsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, OptimizeReplicateEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, Optimize64bitReplicateEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ReorderInstructionsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ClusterSamplesEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, DeferredInterpolationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, AtomicReorderInstructionsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalescingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceCopiesEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceBitcastsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceSplitsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceJoinsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceMultiplePayloadsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceHeadersLastEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ImmediatesToConstantBufferEnable, false, "", "" );
USC_RV_DeclareCompilerControl( dword, IndirectCBOptimizationMode, 0, "", "" );
USC_RV_DeclareCompilerControl( dword, ImmediatesToConstantBufferMinImmediates, 5, "", "" );
USC_RV_DeclareCompilerControl( dword, MaxNumOfMulInstructionsPerPowUnwind, 3, "", "" );
USC_RV_DeclareCompilerControl( dword, MulWeightOfSqrtInstructionInPowUnwind, 2, "", "" );
USC_RV_DeclareCompilerControl( dword, MulWeightOfInvInstructionInPowUnwind, 2, "", "" );
USC_RV_DeclareCompilerControl( bool, OptimizeResourceLoadsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ISASchedulingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, Reduce64To32ALUBitEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, Reduce32To8ALUBitEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, Reduce64To32ALUTopDownPassBitEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, Reduce64To32ALUBottomUpPassBitEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, Reduce64To32ALUSplitPassBitEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, MergeSplitJoinDpEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, FoldUnpacksEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ConstantFoldingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, LoopInvariantCodeMotionEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, InputMarkingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, DispatchDetectionEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, SimdReductionEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, LocallyScalarSimdReductionEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CPLoadBufferOptimizationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, RoundRobinRegisterAllocationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PatternMatchReplaceEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, EuBypassEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, GRFBankAlignmentEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, OptimizeValuesNamespaceEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, UrbAtomicsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ScalarAtomicEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ComputeToAccumulatorEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, OptimizeSimd8MovsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, AlignedPointerDetectionEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, BlockLoadGloballyScalarPointerEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ChannelPropagationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceLdThreadEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceLdCrossLaneEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceLdEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CoalesceStoreEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CutNonspillableLiveRangesEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, DecreaseGRFPressureIfSpilledEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CodeSinkingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, MovPropagationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, CondModPropagationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, RematerializationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, RegionPreSchedulingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PruningEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, DeadBranchRemovalEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, NoSrcDepSetEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ShaderHWInputPackingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, ShaderDeclarationPackingEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, GotoJoinOptEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, GotoAroundGotoMergeEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, StatefulCompilationEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, AtomicDstRemovalEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, MergeSimd8SamplerCBLoadsToSimd16Enable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, SoftwareFp16PayloadEnable, false, "", "");
USC_RV_DeclareCompilerControl( bool, SplitQuadTo32bitForALUEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, SIMD32DivergentLoopHeuristicEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, SIMD32SampleCountHeuristicEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, SIMD32ConcurrentValuesHeuristicEnable,false, "", "" );
USC_RV_DeclareCompilerControl( bool, SIMD32ExtraHeuristicsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRChannelMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRPowerMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMREUBypassMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRComparisonMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRFlowControlMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMultiplyMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMulMadMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRSqrtMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRFDivMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRSelectMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMinMaxMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMulDivMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRFDP3MatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRFDP4ToHMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMov0FDPMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMadMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRBfeMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRLrpMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRTrivialLrpMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMovLrpToAddMadMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRBfiMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRShrShlMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRAddShlMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRAddAddMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRAndShiftMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRJOIN_DPMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRConvert64bitTo32bit, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRGetValueFromActiveChannelMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRCselMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRReplicateComponentMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRFDPHMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRPackMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRFFRCMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRConstantPropagationMatchEnable, true, "", "Enables Constant Propagation" );
USC_RV_DeclareCompilerControl( bool, PMRTrivialPOWMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMulAddToMulMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRVecImmScalarMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMovTwoLowPrecImmEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRIntConvertToBitcastEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRHoistBitcastsEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMediaBlockReadPackMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRAverageMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRPropIntConvMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRConvToMovMatchEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRPropagateRedundantPackEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRHoistSaturateEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMergeWordByteUnpacksEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRMergeWordUnpacksEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, PMRPropLowPrecEnable, false, "", "" );
USC_RV_DeclareCompilerControl( bool, DecomposeFDivToFRcpFMul, false, "", "" );
#undef USC_RV_SetGroup
};
const unsigned int NUM_REGISTRY_VARIABLES = sizeof(SUSCRegistryVariables) / sizeof(SRegistryEntry);
} //namespace USC
/*****************************************************************************\
DEFINE: GHAL3D_OUTPUT_DIRECTORY and USC_ISA_INJECTION_DIRECTORY
\*****************************************************************************/
#if defined(_WIN32)
#define GHAL3D_OUTPUT_DIRECTORY "\\Intel\\USC\\"
#elif defined(ANDROID)
#define GHAL3D_OUTPUT_DIRECTORY "/sdcard/IntelUSC/"
#define USC_ISA_INJECTION_DIRECTORY "/sdcard/IntelUSC/IsaInjection/"
#else
#define GHAL3D_OUTPUT_DIRECTORY "/tmp/IntelUSC/"
#define USC_ISA_INJECTION_DIRECTORY "/tmp/IntelUSC/IsaInjection/"
#endif
|