249 unsigned int numYThreads,
unsigned int numZThreads)
273 output <<
mName << std::endl;
274 output <<
mEntry << std::endl;
275 output <<
mTarget << std::endl;
278 output <<
"Description:" << std::endl;
281 output <<
"shader type = " <<
msShaderType[i] << std::endl;
282 output <<
"shader version = " 284 output <<
"compile flags =" << std::endl;
285 for (i = 0; i < 20; ++i)
292 output <<
"constant buffers = " 294 output <<
"bound resources = " 296 output <<
"input parameters = " 298 output <<
"output parameters = " 302 output <<
"Instructions:" << std::endl;
303 output <<
"total instructions = " 305 output <<
"temporary registers = " 307 output <<
"temporary arrays = " 309 output <<
"defines = " 311 output <<
"declarations = " 313 output <<
"texture normal = " 315 output <<
"texture load = " 317 output <<
"texture comparison = " 319 output <<
"texture bias = " 321 output <<
"texture gradient = " 323 output <<
"float arithmetic = " 325 output <<
"signed int arithmetic = " 327 output <<
"unsigned int arithmetic = " 329 output <<
"static flow control = " 331 output <<
"dynamic flow control = " 333 output <<
"macros = " 339 output <<
"Geometry shader parameters:" << std::endl;
340 output <<
"cut instructions = " 342 output <<
"emit instructions = " 344 output <<
"input primitive = " 346 output <<
"output topology = " 348 output <<
"max output vertices = " 352 output <<
"Tessellation parameters:" << std::endl;
353 output <<
"patch constants = " 355 output <<
"geometry shader instances = " 357 output <<
"patch constants = " 359 output <<
"control points = " 361 output <<
"input primitive = " 363 output <<
"output primitive = " 365 output <<
"partitioning = " 367 output <<
"domain = " 371 output <<
"Compute shader parameters:" << std::endl;
372 output <<
"barrier instructions = " 374 output <<
"interlocked instructions = " 376 output <<
"texture store instructions = " 383 output <<
"Input[" << i <<
"]:" << std::endl;
392 output <<
"Output[" << i <<
"]:" << std::endl;
401 output <<
"ConstantBuffer[" << i <<
"]:" << std::endl;
410 output <<
"TextureBuffer[" << i <<
"]:" << std::endl;
419 output <<
"StructuredBuffer[" << i <<
"]:" << std::endl;
428 output <<
"ByteAddressBuffer[" << i <<
"]:" << std::endl;
437 output <<
"Texture[" << i <<
"]:" << std::endl;
446 output <<
"TextureArray[" << i <<
"]:" << std::endl;
455 output <<
"SamplerState[" << i <<
"]:" << std::endl;
464 output <<
"ResourceBinding[" << i <<
"]:" << std::endl;
471 <<
"," <<
mNumZThreads <<
")" << std::endl << std::endl;
473 output <<
"compiled code = ";
477 output << std::hex << std::endl;
481 unsigned int hc =
static_cast<unsigned int>(
c);
482 output <<
"0x" << std::setw(2) << std::setfill(
'0') << hc;
519 "D3DCOMPILE_SKIP_VALIDATION",
520 "D3DCOMPILE_SKIP_OPTIMIZATION",
521 "D3DCOMPILE_PACK_MATRIX_ROW_MAJOR",
522 "D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR",
523 "D3DCOMPILE_PARTIAL_PRECISION",
524 "D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT",
525 "D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT",
526 "D3DCOMPILE_NO_PRESHADER",
527 "D3DCOMPILE_AVOID_FLOW_CONTROL",
528 "D3DCOMPILE_PREFER_FLOW_CONTROL",
529 "D3DCOMPILE_ENABLE_STRICTNESS",
530 "D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY",
531 "D3DCOMPILE_IEEE_STRICTNESS",
532 "D3DCOMPILE_OPTIMIZATION_LEVEL0",
533 "D3DCOMPILE_OPTIMIZATION_LEVEL3",
534 "D3DCOMPILE_RESERVED16",
535 "D3DCOMPILE_RESERVED17",
536 "D3DCOMPILE_WARNINGS_ARE_ERRORS",
537 "D3DCOMPILE_RESOURCES_MAY_ALIAS" 542 "D3D_PRIMITIVE_UNDEFINED",
543 "D3D_PRIMITIVE_POINT",
544 "D3D_PRIMITIVE_LINE",
545 "D3D_PRIMITIVE_TRIANGLE",
547 "D3D_PRIMITIVE_LINE_ADJ",
548 "D3D_PRIMITIVE_TRIANGLE_ADJ",
549 "D3D_PRIMITIVE_1_CONTROL_POINT_PATCH",
550 "D3D_PRIMITIVE_2_CONTROL_POINT_PATCH",
551 "D3D_PRIMITIVE_3_CONTROL_POINT_PATCH",
552 "D3D_PRIMITIVE_4_CONTROL_POINT_PATCH",
553 "D3D_PRIMITIVE_5_CONTROL_POINT_PATCH",
554 "D3D_PRIMITIVE_6_CONTROL_POINT_PATCH",
555 "D3D_PRIMITIVE_7_CONTROL_POINT_PATCH",
556 "D3D_PRIMITIVE_8_CONTROL_POINT_PATCH",
557 "D3D_PRIMITIVE_9_CONTROL_POINT_PATCH",
558 "D3D_PRIMITIVE_10_CONTROL_POINT_PATCH",
559 "D3D_PRIMITIVE_11_CONTROL_POINT_PATCH",
560 "D3D_PRIMITIVE_12_CONTROL_POINT_PATCH",
561 "D3D_PRIMITIVE_13_CONTROL_POINT_PATCH",
562 "D3D_PRIMITIVE_14_CONTROL_POINT_PATCH",
563 "D3D_PRIMITIVE_15_CONTROL_POINT_PATCH",
564 "D3D_PRIMITIVE_16_CONTROL_POINT_PATCH",
565 "D3D_PRIMITIVE_17_CONTROL_POINT_PATCH",
566 "D3D_PRIMITIVE_18_CONTROL_POINT_PATCH",
567 "D3D_PRIMITIVE_19_CONTROL_POINT_PATCH",
569 "D3D_PRIMITIVE_20_CONTROL_POINT_PATCH",
570 "D3D_PRIMITIVE_21_CONTROL_POINT_PATCH",
571 "D3D_PRIMITIVE_22_CONTROL_POINT_PATCH",
572 "D3D_PRIMITIVE_23_CONTROL_POINT_PATCH",
573 "D3D_PRIMITIVE_24_CONTROL_POINT_PATCH",
574 "D3D_PRIMITIVE_25_CONTROL_POINT_PATCH",
575 "D3D_PRIMITIVE_26_CONTROL_POINT_PATCH",
576 "D3D_PRIMITIVE_27_CONTROL_POINT_PATCH",
577 "D3D_PRIMITIVE_28_CONTROL_POINT_PATCH",
578 "D3D_PRIMITIVE_29_CONTROL_POINT_PATCH",
579 "D3D_PRIMITIVE_30_CONTROL_POINT_PATCH",
580 "D3D_PRIMITIVE_31_CONTROL_POINT_PATCH",
581 "D3D_PRIMITIVE_32_CONTROL_POINT_PATCH" 586 "D3D_PRIMITIVE_TOPOLOGY_UNDEFINED",
587 "D3D_PRIMITIVE_TOPOLOGY_POINTLIST",
588 "D3D_PRIMITIVE_TOPOLOGY_LINELIST",
589 "D3D_PRIMITIVE_TOPOLOGY_LINESTRIP",
590 "D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST",
591 "D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP",
593 "D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10",
594 "D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11",
595 "D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12",
596 "D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13",
597 "",
"",
"",
"",
"",
"",
"",
"",
"",
"",
598 "",
"",
"",
"",
"",
"",
"",
"",
"",
599 "D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST",
600 "D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST",
601 "D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST",
602 "D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST",
603 "D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST",
604 "D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST",
605 "D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST",
606 "D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST",
607 "D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST",
608 "D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST",
609 "D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST",
610 "D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST",
611 "D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST",
612 "D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST",
613 "D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST",
614 "D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST",
615 "D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST",
616 "D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST",
617 "D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST",
618 "D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST",
619 "D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST",
620 "D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST",
621 "D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST",
622 "D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST",
623 "D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST",
624 "D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST",
625 "D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST",
626 "D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST",
627 "D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST",
628 "D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST",
629 "D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST",
630 "D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST" 635 "D3D_TESSELLATOR_OUTPUT_UNDEFINED",
636 "D3D_TESSELLATOR_OUTPUT_POINT",
637 "D3D_TESSELLATOR_OUTPUT_LINE",
638 "D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW",
639 "D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW" 644 "D3D_TESSELLATOR_PARTITIONING_UNDEFINED",
645 "D3D_TESSELLATOR_PARTITIONING_INTEGER",
646 "D3D_TESSELLATOR_PARTITIONING_POW2",
647 "D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD",
648 "D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN" 653 "D3D_TESSELLATOR_DOMAIN_UNDEFINED",
654 "D3D_TESSELLATOR_DOMAIN_ISOLINE",
655 "D3D_TESSELLATOR_DOMAIN_TRI",
656 "D3D_TESSELLATOR_DOMAIN_QUAD" std::vector< unsigned char > mCompiledCode
std::vector< HLSLStructuredBuffer > const & GetSBuffers() const
std::vector< HLSLTexture > mTextures
D3D_PRIMITIVE inputPrimitive
unsigned int numTextureBias
unsigned int numConstantBuffers
unsigned int numOutputParameters
unsigned int numBoundResources
D3D_SHADER_VERSION_TYPE shaderType
void SetTarget(std::string const &target)
void InsertOutput(HLSLParameter const ¶meter)
std::vector< unsigned char > const & GetCompiledCode() const
std::vector< HLSLParameter > mOutputs
void SetEntry(std::string const &entry)
unsigned int numInterlockedInstructions
unsigned int numTemporaryArrays
std::vector< HLSLTextureArray > const & GetTextureArrays() const
unsigned int numTextureGradient
unsigned int maxOutputVertices
unsigned int numTextureLoad
GLuint const GLchar * name
void SetDescription(D3D_SHADER_DESC const &desc)
static std::string const msPrimitiveTopology[]
unsigned int numEmitInstructions
unsigned int numPatchConstants
unsigned int numCutInstructions
unsigned int mNumYThreads
std::vector< HLSLConstantBuffer > mCBuffers
D3D_TESSELLATOR_DOMAIN domain
void Print(std::ofstream &output) const
std::vector< HLSLParameter > const & GetOutputs() const
unsigned int numDeclarations
int GetShaderTypeIndex() const
unsigned int numTemporaryRegisters
static std::string const msPartitioning[]
static std::string const msPrimitive[]
void SetCompiledCode(size_t numBytes, void const *buffer)
std::vector< HLSLByteAddressBuffer > const & GetRBuffers() const
std::vector< HLSLSamplerState > const & GetSamplerStates() const
void InsertInput(HLSLParameter const ¶meter)
unsigned int GetNumXThreads() const
unsigned int numTextureNormal
GLsizei const GLchar *const * string
#define LogError(message)
unsigned int numTextureStoreInstructions
std::vector< HLSLTexture > const & GetTextures() const
void SetNumThreads(unsigned int numXThreads, unsigned int numYThreads, unsigned int numZThreads)
unsigned int minorVersion
void SetName(std::string const &name)
std::vector< HLSLByteAddressBuffer > mRBuffers
unsigned int numGSInstances
std::vector< HLSLSamplerState > mSamplerStates
Description const & GetDescription() const
std::string const & GetTarget() const
static std::string const msOutputPrimitive[]
std::vector< HLSLTextureArray > mTextureArrays
static std::string const msDomain[]
D3D_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive
unsigned int numUIntArithmetic
std::vector< HLSLStructuredBuffer > mSBuffers
D3D_TESSELLATOR_PARTITIONING partitioning
std::string const & GetEntry() const
std::vector< HLSLConstantBuffer > const & GetCBuffers() const
unsigned int numBarrierInstructions
unsigned int numInputParameters
std::vector< HLSLParameter > const & GetInputs() const
static std::string const msCompileFlags[]
unsigned int numDynamicFlowControl
unsigned int mNumZThreads
unsigned int numControlPoints
void Memcpy(void *target, void const *source, size_t count)
static std::string const msShaderType[]
std::vector< HLSLTextureBuffer > const & GetTBuffers() const
#define D3D_SHVER_GET_TYPE
unsigned int mNumXThreads
void Insert(HLSLConstantBuffer const &cbuffer)
unsigned int numTextureComparison
std::vector< HLSLParameter > mInputs
InstructionCount instructions
unsigned int numFloatArithmetic
unsigned int GetNumYThreads() const
std::vector< HLSLResourceBindInfo > const & GetResourceBindInfos() const
std::string const & GetName() const
D3D_PRIMITIVE inputPrimitive
unsigned int majorVersion
#define D3D_SHADER_VERSION_TYPE
unsigned int GetNumZThreads() const
unsigned int numInstructions
D3D_PRIMITIVE_TOPOLOGY outputTopology
std::vector< HLSLTextureBuffer > mTBuffers
std::vector< HLSLResourceBindInfo > mRBInfos
unsigned int numSIntArithmetic
unsigned int numStaticFlowControl