dxbc-reader 0.12.0

DXBC parser: reads Direct3D 10/11 shader bytecode (Shader Model 4 and 5) into typed declarations and instructions, with RDEF reflection and signatures
Documentation
DXBC�ӆƏ�yR��s�N1��[<���D
T
�
RDEF��<��dRD11< ($�����
���imagecountsbytesC����0�|�������������������� ���������kfloat4���~dkdouble2�'�seldword���4@��������$Element����Microsoft (R) HLSL Shader Compiler 10.1ISG1�������
SV_PositionTEXCOORDSV_SampleIndexOSG1�������������SV_TargetSV_CoverageSV_DepthGreaterEqual�SHEX�P'j�YF� ��UU����d rb�b02b(rb8b2�@c
_0e� e� �@e�e`hi6@+�8�FF6�0 F
@+�8�FF6�0 F
@+�8�FF6�0 F
@+�8�FF6�0 F
@+�8�FF6�0 F6@N	�
� 
6�F> 
��F
��F�FF�
�F@�����FF�FF6
n2F�
oB
�V��
82�
F2FF2FF��
���F� ���� ������� F� ����2�� �F

�2�F� �F�B�� B*@�?*
"
6��@F� 8
��@F�@F�@6�@@�?
��@F�@�@6
� 6"@�	�F@6
�F���FF6"@&	�"
� ��
�r�@F�FF�F6��@F�@*@
�#<6"@"
06� F6� �@F�@6`
6�>SFI01STAT�LSPDBNMicrosoft C/C++ MSF 7.00
DS'�%��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������8���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� <�����.1P7�jj��{��J��R8�s�Q35.debug.dxbc
// fxc: /T ps_5_0 /E main /Zi /Fo ps_sm5.ps50.zi.dxbc
// fxc: /T ps_5_0 /E main /Zi /Od /Fo ps_sm5.ps50.zod.dxbc
// fxc: /T ps_5_0 /E main /D EARLY /Zi /Fo ps_sm5.early.zi.dxbc
// fxc: /T ps_5_0 /E main /D EARLY /Zi /Od /Fo ps_sm5.early.zod.dxbc
RWTexture2D<float4> image : register(u2);
RWStructuredBuffer<uint> counts : register(u3);
globallycoherent RWByteAddressBuffer bytes : register(u4);
cbuffer C { float4 k; double2 dk; uint sel; };
struct PIn {
    float4 pos : SV_Position;
    float4 a :�Zu�L�.�;'n U#2h�ZIJI�ox'5��b�Pv�v�v�A$P��t��d���// Pixel programs with Shader Model 5 inputs and outputs: attribute evaluation, sample index and coverage, a
// conservative depth output, the coverage mask, an indexable temporary, minimum precision, doubles, unordered-access
// views written from a pixel program and forced early depth-stencil.
// fxc: /T ps_5_0 /E main /Fo ps_sm5.ps50.dxbc
// fxc: /T ps_5_0 /E main /D EARLY /Fo ps_sm5.early.dxbc
// fxc: /T ps_5_0 /E main /Od /Zi /Fo ps_sm5.debug.dxbc
// fxc: /T ps_5_0 /E main /Zi /Fo ps_sm5.ps50.zi.dxbc
// fxc: /T ps_5_0 /E main /Zi /Od /Fo ps_sm5.ps50.zod.dxbc
// fxc: /T ps_5_0 /E main /D EARLY /Zi /Fo ps_sm5.early.zi.dxbc
// fxc: /T ps_5_0 /E main /D EARLY /Zi /Od /Fo ps_sm5.early.zod.dxbc
RWTexture2D<float4> image : register(u2);
RWStructuredBuffer<uint> counts : register(u3);
globallycoherent RWByteAddressBuffer bytes : register(u4);
cbuffer C { float4 k; double2 dk; uint sel; };
struct PIn {
    float4 pos : SV_Position;
    float4 a : TEXCOORD0;
    sample float2 s : TEXCOORD1;
    noperspective centroid float3 nc : TEXCOORD2;
    linear noperspective sample float ns : TEXCOORD3;
    min16float2 h : TEXCOORD4;
    uint coverage : SV_Coverage;
    uint index : SV_SampleIndex;
};
struct POut { float4 c : SV_Target; min16float4 h : SV_Target1; float d : SV_DepthGreaterEqual; uint mask : SV_Coverage; };
#ifdef EARLY
[earlydepthstencil]
#endif
POut main(PIn p) {
    POut o;
    float4 arr[5];
    [unroll] for (int i = 0; i < 5; ++i) arr[i] = p.a * i;
    float4 c = arr[sel % 5];
    c += EvaluateAttributeAtSample(p.a, p.index) + EvaluateAttributeCentroid(p.a) + EvaluateAttributeSnapped(p.a, int2(1, -1));
    c.xy += p.s + GetRenderTargetSamplePosition(p.index) * GetRenderTargetSampleCount();
    double d = dk.x * (double)c.x + dk.y;
    d = fma(d, dk.y, dk.x);
    c.x += (float)(d / dk.y);
    c.y += (float)min(d, dk.x) + (float)(d == dk.y);
    min16float2 h = p.h * (min16float2)k.xy + (min16float)1.5;
    uint old;
    InterlockedAdd(counts[sel], 1, old);
    image[uint2(p.pos.xy)] = c;
    bytes.InterlockedMax(sel * 4, old);
    bytes.Store3(16, asuint(c.xyz));
    o.c = c + p.nc.xyzx + p.ns;
    o.h = h.xyxy;
    o.d = p.pos.z + 0.01;
    o.mask = p.coverage & 5;
    return o;
}
�����C:\dx-fixtures\ps_sm5.hlslc:\dx-fixtures\ps_sm5.hlsl// Pixel programs with Shader Model 5 inputs and outputs: attribute evaluation, sample index and coverage, a
// conservative depth output, the coverage mask, an indexable temporary, minimum precision, doubles, unordered-access
// views written from a pixel program and forced early depth-stencil.
// fxc: /T ps_5_0 /E main /Fo ps_sm5.ps50.dxbc
// fxc: /T ps_5_0 /E main /D EARLY /Fo ps_sm5.early.dxbc
// fxc: /T ps_5_0 /E main /Od /Zi /Fo ps_sm�0����!�m�(�0�~�%�B<
.�e
.�eMicrosoft (R) HLSL Shader Compiler 10.16=hlslFlags0x5hlslTargetps_5_0hlslEntrymain*�����main*>	pP��P��P��P��P��P��P��P��P �� P$��$P(��0P,��4P0��8P4��@P8��PP<��TPD��`P#@��p���:>�<main return value>P$��P& ��P��P��P��P��P��P��P��P��*>
oP��P��P��P��P�P�P�P�P � P$HT$*>
arrPP��*>tiP�*>cP4�P�P4�P�P4�P4�P��P��*>AdP��,*>hP��P��*>uoldP �&�p�5:f!�0��Z�8��,� ��  �  � 8 �8 P �P l �l � �� � �� � �� � �� � ��  �  � 4 �4 H �H d �d | �| � �� � �� � �� �!��!�!��!!�!4"�4"P"�P"d"�d"�"��"�"��"�"��"�#��#�#��##�##�#0#�0#L#�L#h#�h#�$��$�$��$�$��$�$��$�%��%%�%,&�,&L&�L&`&�`&|'�|'�'��'�'��'�'��'�'��''�'$(�$(@(�@(h(�h(�(��(�*��*�*��*�*��*�*��*+�+ +� +<,�<,P,�P,t,�t,�-��-�.��.�.��.�/��/0�01�101�01H2�H2\2�\2x2�x2�2��2�2��2(*:39*:39*:*9::%'*:39*:39*:*9::%'*:39*:39*:*9::%'*:39*:39*:*9::%'*:39*:39*:*9
04Q
QU~
~~X8X8X<WXWXWX
WXW)!)!)()(	444*24"34343>+>+>/=>=('('('('' ' '&$#









�0Lh��
u��
u��




Adouble2��


u
�18�
����tt|@float4���@float2���@float3��� ��min16float2��z
pos��
a
 s
(nc���
@4ns���
8h
u@coverage�
uDindexHPIn��
min16float4��6
c
h
@ d
u$mask�	(POut�

"P����18���� TEXCOORD0;
    sample float2 s : TEXCOORD1;
    noperspective centroid float3 nc : TEXCOORD2;
    linear noperspective sample float ns : TEXCOORD3;
    min16float2 h : TEXCOORD4;
    uint coverage : SV_Coverage;
    uint index : SV_SampleIndex;
};
struct POut { float4 c : SV_Target; min16float4 h : SV_Target1; float d : SV_DepthGreaterEqual; uint mask : SV_Coverage; };
#ifdef EARLY
[earlydepthstencil]
#endif
POut main(PIn p) {
    POut o;
    float4 arr[5];
    [unroll] for (int i = 0; i < 5; ++i) arr[i] = p.a * i;
    float4 c = arr[sel % 5];
    c += EvaluateAttributeAtSample(p.a, p.index) + EvaluateAttributeCentroid(p.a) + EvaluateAttributeSnapped(p.a, int2(1, -1));
    c.xy += p.s + GetRenderTargetSamplePosition(p.index) * GetRenderTargetSampleCount();
    double d = dk.x * (double)c.x + dk.y;
    d = fma(d, dk.y, dk.x);
    c.x += (float)(d / dk.y);
    c.y += (float)min(d, dk.x) + (float)(d == dk.y);
    min16float2 h = p.h * (min16float2)k.xy + (min16float)1.5;
    uint old;
    InterlockedAdd(counts[sel], 1, old);
    image[uint2(p.pos.xy)] = c;
    bytes.InterlockedMax(sel * 4, old);
    bytes.Store3(16, asuint(c.xyz));
    o.c = c + p.nc.xyzx + p.ns;
    o.h = h.xyxy;
    o.d = p.pos.z + 0.01;
    o.mask = p.coverage & 5;
    return o;
}
8D3DSHDR� `����	/�8 �Mi1�� @ $0<H%�mainQ��������imageQ��������countsQ��������bytesQ������kQ������dkQ ������sel����	/�����w	1
�kL ,(� `	lmainnone-�.�� `�������������C:\dx-fixtures\ps_sm5.hlsl�������������������������.1P7�jj��{��J��R8�sH/LinkInfo/names/src/headerblock/src/files/c:\dx-fixtures\ps_sm5.hlsl"
�Q3 ��/8	���|(h,�#"
	
! $