[D3D12] Fake per-edge tessellation with continuous
This commit is contained in:
parent
19d7e0ce3d
commit
2b646ff425
|
@ -150,10 +150,19 @@ void D3D12CommandProcessor::SubmitBarriers() {
|
|||
}
|
||||
|
||||
ID3D12RootSignature* D3D12CommandProcessor::GetRootSignature(
|
||||
const D3D12Shader* vertex_shader, const D3D12Shader* pixel_shader) {
|
||||
const D3D12Shader* vertex_shader, const D3D12Shader* pixel_shader,
|
||||
PrimitiveType primitive_type) {
|
||||
assert_true(vertex_shader->is_translated());
|
||||
assert_true(pixel_shader == nullptr || pixel_shader->is_translated());
|
||||
|
||||
D3D12_SHADER_VISIBILITY vertex_visibility;
|
||||
if (primitive_type == PrimitiveType::kTrianglePatch ||
|
||||
primitive_type == PrimitiveType::kQuadPatch) {
|
||||
vertex_visibility = D3D12_SHADER_VISIBILITY_DOMAIN;
|
||||
} else {
|
||||
vertex_visibility = D3D12_SHADER_VISIBILITY_VERTEX;
|
||||
}
|
||||
|
||||
uint32_t texture_count_vertex, sampler_count_vertex;
|
||||
vertex_shader->GetTextureSRVs(texture_count_vertex);
|
||||
vertex_shader->GetSamplerBindings(sampler_count_vertex);
|
||||
|
@ -175,6 +184,9 @@ ID3D12RootSignature* D3D12CommandProcessor::GetRootSignature(
|
|||
index_offset += D3D12Shader::kMaxTextureSRVIndexBits;
|
||||
index |= sampler_count_vertex << index_offset;
|
||||
index_offset += D3D12Shader::kMaxSamplerBindingIndexBits;
|
||||
index |= uint32_t(vertex_visibility == D3D12_SHADER_VISIBILITY_DOMAIN)
|
||||
<< index_offset;
|
||||
++index_offset;
|
||||
assert_true(index_offset <= 32);
|
||||
|
||||
// Try an existing root signature.
|
||||
|
@ -218,7 +230,7 @@ ID3D12RootSignature* D3D12CommandProcessor::GetRootSignature(
|
|||
parameter.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE;
|
||||
parameter.DescriptorTable.NumDescriptorRanges = 1;
|
||||
parameter.DescriptorTable.pDescriptorRanges = ⦥
|
||||
parameter.ShaderVisibility = D3D12_SHADER_VISIBILITY_VERTEX;
|
||||
parameter.ShaderVisibility = vertex_visibility;
|
||||
range.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_CBV;
|
||||
range.NumDescriptors = 1;
|
||||
range.BaseShaderRegister =
|
||||
|
@ -342,7 +354,7 @@ ID3D12RootSignature* D3D12CommandProcessor::GetRootSignature(
|
|||
parameter.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE;
|
||||
parameter.DescriptorTable.NumDescriptorRanges = 1;
|
||||
parameter.DescriptorTable.pDescriptorRanges = ⦥
|
||||
parameter.ShaderVisibility = D3D12_SHADER_VISIBILITY_VERTEX;
|
||||
parameter.ShaderVisibility = vertex_visibility;
|
||||
range.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV;
|
||||
range.NumDescriptors = texture_count_vertex;
|
||||
range.BaseShaderRegister = 1;
|
||||
|
@ -358,7 +370,7 @@ ID3D12RootSignature* D3D12CommandProcessor::GetRootSignature(
|
|||
parameter.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE;
|
||||
parameter.DescriptorTable.NumDescriptorRanges = 1;
|
||||
parameter.DescriptorTable.pDescriptorRanges = ⦥
|
||||
parameter.ShaderVisibility = D3D12_SHADER_VISIBILITY_VERTEX;
|
||||
parameter.ShaderVisibility = vertex_visibility;
|
||||
range.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER;
|
||||
range.NumDescriptors = sampler_count_vertex;
|
||||
range.BaseShaderRegister = 0;
|
||||
|
@ -1169,7 +1181,8 @@ bool D3D12CommandProcessor::IssueDraw(PrimitiveType primitive_type,
|
|||
}
|
||||
// Translate shaders now because to get the color mask, which is needed by the
|
||||
// render target cache.
|
||||
if (!pipeline_cache_->EnsureShadersTranslated(vertex_shader, pixel_shader)) {
|
||||
if (!pipeline_cache_->EnsureShadersTranslated(vertex_shader, pixel_shader,
|
||||
primitive_type)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1194,6 +1207,49 @@ bool D3D12CommandProcessor::IssueDraw(PrimitiveType primitive_type,
|
|||
render_target_cache_->GetCurrentPipelineRenderTargets();
|
||||
|
||||
bool indexed = index_buffer_info != nullptr && index_buffer_info->guest_base;
|
||||
// Per-edge tessellation requires an index buffer, but it contains per-edge
|
||||
// tessellation factors (as floats) in it instead of control point indices.
|
||||
bool per_edge_tessellation;
|
||||
if (primitive_type == PrimitiveType::kTrianglePatch ||
|
||||
primitive_type == PrimitiveType::kQuadPatch) {
|
||||
TessellationMode tessellation_mode =
|
||||
TessellationMode(regs[XE_GPU_REG_VGT_HOS_CNTL].u32 & 0x3);
|
||||
per_edge_tessellation = tessellation_mode == TessellationMode::kPerEdge;
|
||||
if (per_edge_tessellation &&
|
||||
(!indexed || index_buffer_info->format != IndexFormat::kInt32)) {
|
||||
return false;
|
||||
}
|
||||
// TODO(Triang3l): Implement all tessellation modes if games using any other
|
||||
// than per-edge are found. The biggest question about them is what is being
|
||||
// passed to vertex shader registers, especially if patches are drawn with
|
||||
// an index buffer.
|
||||
// https://www.slideshare.net/blackdevilvikas/next-generation-graphics-programming-on-xbox-360
|
||||
// - Discrete: integer partitioning, factors VGT_HOS_MAX_TESS_LEVEL + 1. PC
|
||||
// tessellation gives a completely different (non-uniform) grid
|
||||
// for triangles though.
|
||||
// - Continuous: fractional_even partitioning, factors
|
||||
// VGT_HOS_MAX_TESS_LEVEL + 1.
|
||||
// - Per-edge: fractional_even partitioning, edge factors are float values
|
||||
// in the index buffer clamped to VGT_HOS_MIN_TESS_LEVEL and
|
||||
// VGT_HOS_MAX_TESS_LEVEL, plus one, inner factor appears to be
|
||||
// the minimum of the two edge factors (but without adding 1) in
|
||||
// each direction. This relies on memexport in games heavily for
|
||||
// generation of the factor buffer, in Halo 3 the buffer is not
|
||||
// initialized at all before the memexport pass.
|
||||
// Per-edge partitional is likely fractional because this presentation,
|
||||
// though only mentioning the Xbox 360, demonstrates adaptive tessellation
|
||||
// using fractional partitioning:
|
||||
// http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.221.4656&rep=rep1&type=pdf
|
||||
if (tessellation_mode != TessellationMode::kPerEdge) {
|
||||
XELOGE(
|
||||
"Tessellation mode %u is not implemented yet, only per-edge is "
|
||||
"partially available now - report the game to Xenia developers!",
|
||||
uint32_t(tessellation_mode));
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
per_edge_tessellation = false;
|
||||
}
|
||||
|
||||
// TODO(Triang3l): Non-indexed line loops (by movc'ing zero to the vertex
|
||||
// index if it's one beyond the end).
|
||||
|
@ -1225,6 +1281,12 @@ bool D3D12CommandProcessor::IssueDraw(PrimitiveType primitive_type,
|
|||
case PrimitiveType::kQuadList:
|
||||
primitive_topology = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ;
|
||||
break;
|
||||
case PrimitiveType::kTrianglePatch:
|
||||
primitive_topology = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST;
|
||||
break;
|
||||
case PrimitiveType::kQuadPatch:
|
||||
primitive_topology = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -1334,7 +1396,12 @@ bool D3D12CommandProcessor::IssueDraw(PrimitiveType primitive_type,
|
|||
shared_memory_->UseForReading();
|
||||
command_list->IASetIndexBuffer(&index_buffer_view);
|
||||
SubmitBarriers();
|
||||
if (per_edge_tessellation) {
|
||||
// Index buffer used for per-edge factors.
|
||||
command_list->DrawInstanced(index_count, 1, 0, 0);
|
||||
} else {
|
||||
command_list->DrawIndexedInstanced(index_count, 1, 0, 0, 0);
|
||||
}
|
||||
} else {
|
||||
// Check if need to draw using a conversion index buffer.
|
||||
uint32_t converted_index_count;
|
||||
|
@ -1823,6 +1890,19 @@ void D3D12CommandProcessor::UpdateSystemConstantValues(
|
|||
dirty |= system_constants_.flags != flags;
|
||||
system_constants_.flags = flags;
|
||||
|
||||
// Tessellation factor range, plus 1.0 according to the images in
|
||||
// https://www.slideshare.net/blackdevilvikas/next-generation-graphics-programming-on-xbox-360
|
||||
float tessellation_factor_min =
|
||||
regs[XE_GPU_REG_VGT_HOS_MIN_TESS_LEVEL].f32 + 1.0f;
|
||||
float tessellation_factor_max =
|
||||
regs[XE_GPU_REG_VGT_HOS_MAX_TESS_LEVEL].f32 + 1.0f;
|
||||
dirty |= system_constants_.tessellation_factor_range_min !=
|
||||
tessellation_factor_min;
|
||||
system_constants_.tessellation_factor_range_min = tessellation_factor_min;
|
||||
dirty |= system_constants_.tessellation_factor_range_max !=
|
||||
tessellation_factor_max;
|
||||
system_constants_.tessellation_factor_range_max = tessellation_factor_max;
|
||||
|
||||
// Vertex index offset.
|
||||
dirty |= system_constants_.vertex_base_index != vgt_indx_offset;
|
||||
system_constants_.vertex_base_index = vgt_indx_offset;
|
||||
|
|
|
@ -79,7 +79,8 @@ class D3D12CommandProcessor : public CommandProcessor {
|
|||
|
||||
// Finds or creates root signature for a pipeline.
|
||||
ID3D12RootSignature* GetRootSignature(const D3D12Shader* vertex_shader,
|
||||
const D3D12Shader* pixel_shader);
|
||||
const D3D12Shader* pixel_shader,
|
||||
PrimitiveType primitive_type);
|
||||
|
||||
ui::d3d12::UploadBufferPool* GetConstantBufferPool() const {
|
||||
return constant_buffer_pool_.get();
|
||||
|
|
|
@ -25,6 +25,15 @@ class D3D12Shader : public Shader {
|
|||
D3D12Shader(ShaderType shader_type, uint64_t data_hash,
|
||||
const uint32_t* dword_ptr, uint32_t dword_count);
|
||||
|
||||
// For checking if it's a domain shader rather than a vertex shader when used
|
||||
// (since when a shader is used for the first time, it's translated either
|
||||
// into a vertex shader or a domain shader, depending on the primitive type).
|
||||
PrimitiveType GetDomainShaderPrimitiveType() const {
|
||||
return domain_shader_primitive_type_;
|
||||
}
|
||||
void SetDomainShaderPrimitiveType(PrimitiveType primitive_type) {
|
||||
domain_shader_primitive_type_ = primitive_type;
|
||||
}
|
||||
void SetTexturesAndSamplers(
|
||||
const DxbcShaderTranslator::TextureSRV* texture_srvs,
|
||||
uint32_t texture_srv_count,
|
||||
|
@ -68,6 +77,7 @@ class D3D12Shader : public Shader {
|
|||
}
|
||||
|
||||
private:
|
||||
PrimitiveType domain_shader_primitive_type_ = PrimitiveType::kNone;
|
||||
std::vector<TextureSRV> texture_srvs_;
|
||||
uint32_t used_texture_mask_ = 0;
|
||||
std::vector<SamplerBinding> sampler_bindings_;
|
||||
|
|
|
@ -32,9 +32,15 @@ namespace gpu {
|
|||
namespace d3d12 {
|
||||
|
||||
// Generated with `xb buildhlsl`.
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/continuous_quad_hs.h"
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/continuous_triangle_hs.h"
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/discrete_quad_hs.h"
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/discrete_triangle_hs.h"
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/primitive_point_list_gs.h"
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/primitive_quad_list_gs.h"
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/primitive_rectangle_list_gs.h"
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/tessellation_quad_vs.h"
|
||||
#include "xenia/gpu/d3d12/shaders/dxbc/tessellation_triangle_vs.h"
|
||||
|
||||
PipelineCache::PipelineCache(D3D12CommandProcessor* command_processor,
|
||||
RegisterFile* register_file, bool edram_rov_used)
|
||||
|
@ -88,7 +94,8 @@ D3D12Shader* PipelineCache::LoadShader(ShaderType shader_type,
|
|||
}
|
||||
|
||||
bool PipelineCache::EnsureShadersTranslated(D3D12Shader* vertex_shader,
|
||||
D3D12Shader* pixel_shader) {
|
||||
D3D12Shader* pixel_shader,
|
||||
PrimitiveType primitive_type) {
|
||||
auto& regs = *register_file_;
|
||||
|
||||
// These are the constant base addresses/ranges for shaders.
|
||||
|
@ -101,12 +108,12 @@ bool PipelineCache::EnsureShadersTranslated(D3D12Shader* vertex_shader,
|
|||
xenos::xe_gpu_program_cntl_t sq_program_cntl;
|
||||
sq_program_cntl.dword_0 = regs[XE_GPU_REG_SQ_PROGRAM_CNTL].u32;
|
||||
if (!vertex_shader->is_translated() &&
|
||||
!TranslateShader(vertex_shader, sq_program_cntl)) {
|
||||
!TranslateShader(vertex_shader, sq_program_cntl, primitive_type)) {
|
||||
XELOGE("Failed to translate the vertex shader!");
|
||||
return false;
|
||||
}
|
||||
if (pixel_shader != nullptr && !pixel_shader->is_translated() &&
|
||||
!TranslateShader(pixel_shader, sq_program_cntl)) {
|
||||
!TranslateShader(pixel_shader, sq_program_cntl, primitive_type)) {
|
||||
XELOGE("Failed to translate the pixel shader!");
|
||||
return false;
|
||||
}
|
||||
|
@ -200,7 +207,20 @@ bool PipelineCache::SetShadowRegister(float* dest, uint32_t register_name) {
|
|||
}
|
||||
|
||||
bool PipelineCache::TranslateShader(D3D12Shader* shader,
|
||||
xenos::xe_gpu_program_cntl_t cntl) {
|
||||
xenos::xe_gpu_program_cntl_t cntl,
|
||||
PrimitiveType primitive_type) {
|
||||
// Set the target for vertex shader translation.
|
||||
DxbcShaderTranslator::VertexShaderType vertex_shader_type;
|
||||
if (primitive_type == PrimitiveType::kTrianglePatch) {
|
||||
vertex_shader_type =
|
||||
DxbcShaderTranslator::VertexShaderType::kTriangleDomain;
|
||||
} else if (primitive_type == PrimitiveType::kQuadPatch) {
|
||||
vertex_shader_type = DxbcShaderTranslator::VertexShaderType::kQuadDomain;
|
||||
} else {
|
||||
vertex_shader_type = DxbcShaderTranslator::VertexShaderType::kVertex;
|
||||
}
|
||||
shader_translator_->SetVertexShaderType(vertex_shader_type);
|
||||
|
||||
// Perform translation.
|
||||
// If this fails the shader will be marked as invalid and ignored later.
|
||||
if (!shader_translator_->Translate(shader, cntl)) {
|
||||
|
@ -209,6 +229,12 @@ bool PipelineCache::TranslateShader(D3D12Shader* shader,
|
|||
return false;
|
||||
}
|
||||
|
||||
if (vertex_shader_type != DxbcShaderTranslator::VertexShaderType::kVertex) {
|
||||
// For checking later for safety (so a vertex shader won't be accidentally
|
||||
// used as a domain shader or vice versa).
|
||||
shader->SetDomainShaderPrimitiveType(primitive_type);
|
||||
}
|
||||
|
||||
uint32_t texture_srv_count;
|
||||
const DxbcShaderTranslator::TextureSRV* texture_srvs =
|
||||
shader_translator_->GetTextureSRVs(texture_srv_count);
|
||||
|
@ -301,36 +327,82 @@ PipelineCache::UpdateStatus PipelineCache::UpdateShaderStages(
|
|||
case PrimitiveType::k2DLineStrip:
|
||||
primitive_topology_type = D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE;
|
||||
break;
|
||||
case PrimitiveType::kTrianglePatch:
|
||||
case PrimitiveType::kQuadPatch:
|
||||
primitive_topology_type = D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH;
|
||||
break;
|
||||
default:
|
||||
primitive_topology_type = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
|
||||
};
|
||||
dirty |= regs.primitive_topology_type != primitive_topology_type;
|
||||
regs.primitive_topology_type = primitive_topology_type;
|
||||
// Zero out the tessellation mode by default for a stable hash.
|
||||
TessellationMode tessellation_mode = TessellationMode(0);
|
||||
if (primitive_type == PrimitiveType::kPointList ||
|
||||
primitive_type == PrimitiveType::kRectangleList ||
|
||||
primitive_type == PrimitiveType::kQuadList) {
|
||||
dirty |= regs.geometry_shader_primitive_type != primitive_type;
|
||||
regs.geometry_shader_primitive_type = primitive_type;
|
||||
} else {
|
||||
dirty |= regs.geometry_shader_primitive_type != PrimitiveType::kNone;
|
||||
regs.geometry_shader_primitive_type = PrimitiveType::kNone;
|
||||
primitive_type == PrimitiveType::kQuadList ||
|
||||
primitive_type == PrimitiveType::kTrianglePatch ||
|
||||
primitive_type == PrimitiveType::kQuadPatch) {
|
||||
dirty |= regs.hs_gs_ds_primitive_type != primitive_type;
|
||||
regs.hs_gs_ds_primitive_type = primitive_type;
|
||||
if (primitive_type == PrimitiveType::kTrianglePatch ||
|
||||
primitive_type == PrimitiveType::kQuadPatch) {
|
||||
tessellation_mode = TessellationMode(
|
||||
register_file_->values[XE_GPU_REG_VGT_HOS_CNTL].u32 & 0x3);
|
||||
}
|
||||
} else {
|
||||
dirty |= regs.hs_gs_ds_primitive_type != PrimitiveType::kNone;
|
||||
regs.hs_gs_ds_primitive_type = PrimitiveType::kNone;
|
||||
}
|
||||
dirty |= regs.tessellation_mode != tessellation_mode;
|
||||
regs.tessellation_mode = tessellation_mode;
|
||||
XXH64_update(&hash_state_, ®s, sizeof(regs));
|
||||
if (!dirty) {
|
||||
return UpdateStatus::kCompatible;
|
||||
}
|
||||
|
||||
if (!EnsureShadersTranslated(vertex_shader, pixel_shader)) {
|
||||
if (!EnsureShadersTranslated(vertex_shader, pixel_shader, primitive_type)) {
|
||||
return UpdateStatus::kError;
|
||||
}
|
||||
|
||||
update_desc_.pRootSignature =
|
||||
command_processor_->GetRootSignature(vertex_shader, pixel_shader);
|
||||
update_desc_.pRootSignature = command_processor_->GetRootSignature(
|
||||
vertex_shader, pixel_shader, primitive_type);
|
||||
if (update_desc_.pRootSignature == nullptr) {
|
||||
return UpdateStatus::kError;
|
||||
}
|
||||
if (primitive_type == PrimitiveType::kTrianglePatch ||
|
||||
primitive_type == PrimitiveType::kQuadPatch) {
|
||||
if (vertex_shader->GetDomainShaderPrimitiveType() != primitive_type) {
|
||||
XELOGE("Tried to use vertex shader %.16" PRIX64
|
||||
" for tessellation, but it's not a tessellation domain shader or "
|
||||
"has the wrong domain",
|
||||
vertex_shader->ucode_data_hash());
|
||||
assert_always();
|
||||
return UpdateStatus::kError;
|
||||
}
|
||||
if (primitive_type == PrimitiveType::kTrianglePatch) {
|
||||
update_desc_.VS.pShaderBytecode = tessellation_triangle_vs;
|
||||
update_desc_.VS.BytecodeLength = sizeof(tessellation_triangle_vs);
|
||||
} else if (primitive_type == PrimitiveType::kQuadPatch) {
|
||||
update_desc_.VS.pShaderBytecode = tessellation_quad_vs;
|
||||
update_desc_.VS.BytecodeLength = sizeof(tessellation_quad_vs);
|
||||
}
|
||||
// The Xenos vertex shader works like a domain shader with tessellation.
|
||||
update_desc_.DS.pShaderBytecode = vertex_shader->translated_binary().data();
|
||||
update_desc_.DS.BytecodeLength = vertex_shader->translated_binary().size();
|
||||
} else {
|
||||
if (vertex_shader->GetDomainShaderPrimitiveType() != PrimitiveType::kNone) {
|
||||
XELOGE("Tried to use vertex shader %.16" PRIX64
|
||||
" without tessellation, but it's a tessellation domain shader",
|
||||
vertex_shader->ucode_data_hash());
|
||||
assert_always();
|
||||
return UpdateStatus::kError;
|
||||
}
|
||||
update_desc_.VS.pShaderBytecode = vertex_shader->translated_binary().data();
|
||||
update_desc_.VS.BytecodeLength = vertex_shader->translated_binary().size();
|
||||
update_desc_.DS.pShaderBytecode = nullptr;
|
||||
update_desc_.DS.BytecodeLength = 0;
|
||||
}
|
||||
if (pixel_shader != nullptr) {
|
||||
update_desc_.PS.pShaderBytecode = pixel_shader->translated_binary().data();
|
||||
update_desc_.PS.BytecodeLength = pixel_shader->translated_binary().size();
|
||||
|
@ -343,6 +415,32 @@ PipelineCache::UpdateStatus PipelineCache::UpdateShaderStages(
|
|||
update_desc_.PS.BytecodeLength = 0;
|
||||
}
|
||||
}
|
||||
switch (primitive_type) {
|
||||
case PrimitiveType::kTrianglePatch:
|
||||
if (tessellation_mode == TessellationMode::kDiscrete) {
|
||||
update_desc_.HS.pShaderBytecode = discrete_triangle_hs;
|
||||
update_desc_.HS.BytecodeLength = sizeof(discrete_triangle_hs);
|
||||
} else {
|
||||
update_desc_.HS.pShaderBytecode = continuous_triangle_hs;
|
||||
update_desc_.HS.BytecodeLength = sizeof(continuous_triangle_hs);
|
||||
// TODO(Triang3l): True per-edge tessellation when memexport is added.
|
||||
}
|
||||
break;
|
||||
case PrimitiveType::kQuadPatch:
|
||||
if (tessellation_mode == TessellationMode::kDiscrete) {
|
||||
update_desc_.HS.pShaderBytecode = discrete_quad_hs;
|
||||
update_desc_.HS.BytecodeLength = sizeof(discrete_quad_hs);
|
||||
} else {
|
||||
update_desc_.HS.pShaderBytecode = continuous_quad_hs;
|
||||
update_desc_.HS.BytecodeLength = sizeof(continuous_quad_hs);
|
||||
// TODO(Triang3l): True per-edge tessellation when memexport is added.
|
||||
}
|
||||
break;
|
||||
default:
|
||||
update_desc_.HS.pShaderBytecode = nullptr;
|
||||
update_desc_.HS.BytecodeLength = 0;
|
||||
break;
|
||||
}
|
||||
switch (primitive_type) {
|
||||
case PrimitiveType::kPointList:
|
||||
update_desc_.GS.pShaderBytecode = primitive_point_list_gs;
|
||||
|
|
|
@ -46,7 +46,8 @@ class PipelineCache {
|
|||
|
||||
// Translates shaders if needed, also making shader info up to date.
|
||||
bool EnsureShadersTranslated(D3D12Shader* vertex_shader,
|
||||
D3D12Shader* pixel_shader);
|
||||
D3D12Shader* pixel_shader,
|
||||
PrimitiveType primitive_type);
|
||||
|
||||
UpdateStatus ConfigurePipeline(
|
||||
D3D12Shader* vertex_shader, D3D12Shader* pixel_shader,
|
||||
|
@ -61,14 +62,15 @@ class PipelineCache {
|
|||
bool SetShadowRegister(uint32_t* dest, uint32_t register_name);
|
||||
bool SetShadowRegister(float* dest, uint32_t register_name);
|
||||
|
||||
bool TranslateShader(D3D12Shader* shader, xenos::xe_gpu_program_cntl_t cntl);
|
||||
bool TranslateShader(D3D12Shader* shader, xenos::xe_gpu_program_cntl_t cntl,
|
||||
PrimitiveType primitive_type);
|
||||
|
||||
UpdateStatus UpdateState(
|
||||
D3D12Shader* vertex_shader, D3D12Shader* pixel_shader,
|
||||
PrimitiveType primitive_type, IndexFormat index_format,
|
||||
const RenderTargetCache::PipelineRenderTarget render_targets[5]);
|
||||
|
||||
// pRootSignature, VS, PS, GS, PrimitiveTopologyType.
|
||||
// pRootSignature, VS, PS, DS, HS, GS, PrimitiveTopologyType.
|
||||
UpdateStatus UpdateShaderStages(D3D12Shader* vertex_shader,
|
||||
D3D12Shader* pixel_shader,
|
||||
PrimitiveType primitive_type);
|
||||
|
@ -124,8 +126,12 @@ class PipelineCache {
|
|||
D3D12Shader* vertex_shader;
|
||||
D3D12Shader* pixel_shader;
|
||||
D3D12_PRIMITIVE_TOPOLOGY_TYPE primitive_topology_type;
|
||||
// Primitive type if it needs a geometry shader, or kNone.
|
||||
PrimitiveType geometry_shader_primitive_type;
|
||||
// Primitive type if it needs hull/domain shaders or a geometry shader, or
|
||||
// kNone if should be transformed with only a vertex shader.
|
||||
PrimitiveType hs_gs_ds_primitive_type;
|
||||
// Tessellation mode - ignored when not using tessellation (when
|
||||
// hs_gs_ds_primitive_type is not a patch).
|
||||
TessellationMode tessellation_mode;
|
||||
|
||||
UpdateShaderStagesRegisters() { Reset(); }
|
||||
void Reset() { std::memset(this, 0, sizeof(*this)); }
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
#include "xenos_draw.hlsli"
|
||||
|
||||
struct XeHSControlPointOutput {};
|
||||
|
||||
struct XeHSConstantDataOutput {
|
||||
float edges[4] : SV_TessFactor;
|
||||
float inside[2] : SV_InsideTessFactor;
|
||||
};
|
||||
|
||||
XeHSConstantDataOutput XePatchConstant() {
|
||||
XeHSConstantDataOutput output = (XeHSConstantDataOutput)0;
|
||||
uint i;
|
||||
|
||||
// 1.0 already added to the factor, according to the images in
|
||||
// https://www.slideshare.net/blackdevilvikas/next-generation-graphics-programming-on-xbox-360
|
||||
// (fractional_even also requires a factor of at least 2.0).
|
||||
|
||||
// Don't calculate any variables for SV_TessFactor outside of this loop, or
|
||||
// everything will be broken - FXC will add code to make it calculated only
|
||||
// once for all 4 fork instances, but doesn't do it properly.
|
||||
[unroll] for (i = 0; i < 4; ++i) {
|
||||
output.edges[i] = xe_tessellation_factor_range.y;
|
||||
}
|
||||
|
||||
// Don't calculate any variables for SV_InsideTessFactor outside of this loop,
|
||||
// or everything will be broken - FXC will add code to make it calculated only
|
||||
// once for all 2 fork instances, but doesn't do it properly.
|
||||
[unroll] for (i = 0; i < 2; ++i) {
|
||||
output.inside[i] = xe_tessellation_factor_range.y;
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
[domain("quad")]
|
||||
[partitioning("fractional_even")]
|
||||
[outputtopology("triangle_cw")]
|
||||
[outputcontrolpoints(4)]
|
||||
[patchconstantfunc("XePatchConstant")]
|
||||
void main(InputPatch<XeHSControlPointOutput, 4> input_patch) {}
|
|
@ -0,0 +1,35 @@
|
|||
#include "xenos_draw.hlsli"
|
||||
|
||||
struct XeHSControlPointOutput {};
|
||||
|
||||
struct XeHSConstantDataOutput {
|
||||
float edges[3] : SV_TessFactor;
|
||||
float inside : SV_InsideTessFactor;
|
||||
};
|
||||
|
||||
XeHSConstantDataOutput XePatchConstant() {
|
||||
XeHSConstantDataOutput output = (XeHSConstantDataOutput)0;
|
||||
uint i;
|
||||
|
||||
// 1.0 is already added to the factor on the CPU, according to the images in
|
||||
// https://www.slideshare.net/blackdevilvikas/next-generation-graphics-programming-on-xbox-360
|
||||
// (fractional_even also requires a factor of at least 2.0).
|
||||
|
||||
// Don't calculate any variables for SV_TessFactor outside of this loop, or
|
||||
// everything will be broken - FXC will add code to make it calculated only
|
||||
// once for all 3 fork instances, but doesn't do it properly.
|
||||
[unroll] for (i = 0; i < 3; ++i) {
|
||||
output.edges[i] = xe_tessellation_factor_range.y;
|
||||
}
|
||||
|
||||
output.inside = xe_tessellation_factor_range.y;
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
[domain("tri")]
|
||||
[partitioning("fractional_even")]
|
||||
[outputtopology("triangle_cw")]
|
||||
[outputcontrolpoints(3)]
|
||||
[patchconstantfunc("XePatchConstant")]
|
||||
void main(InputPatch<XeHSControlPointOutput, 3> input_patch) {}
|
|
@ -0,0 +1,40 @@
|
|||
#include "xenos_draw.hlsli"
|
||||
|
||||
struct XeHSControlPointOutput {};
|
||||
|
||||
struct XeHSConstantDataOutput {
|
||||
float edges[4] : SV_TessFactor;
|
||||
float inside[2] : SV_InsideTessFactor;
|
||||
};
|
||||
|
||||
XeHSConstantDataOutput XePatchConstant() {
|
||||
XeHSConstantDataOutput output = (XeHSConstantDataOutput)0;
|
||||
uint i;
|
||||
|
||||
// 1.0 already added to the factor, according to the images in
|
||||
// https://www.slideshare.net/blackdevilvikas/next-generation-graphics-programming-on-xbox-360
|
||||
// (fractional_even also requires a factor of at least 2.0).
|
||||
|
||||
// Don't calculate any variables for SV_TessFactor outside of this loop, or
|
||||
// everything will be broken - FXC will add code to make it calculated only
|
||||
// once for all 4 fork instances, but doesn't do it properly.
|
||||
[unroll] for (i = 0; i < 4; ++i) {
|
||||
output.edges[i] = xe_tessellation_factor_range.y;
|
||||
}
|
||||
|
||||
// Don't calculate any variables for SV_InsideTessFactor outside of this loop,
|
||||
// or everything will be broken - FXC will add code to make it calculated only
|
||||
// once for all 2 fork instances, but doesn't do it properly.
|
||||
[unroll] for (i = 0; i < 2; ++i) {
|
||||
output.inside[i] = xe_tessellation_factor_range.y;
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
[domain("quad")]
|
||||
[partitioning("integer")]
|
||||
[outputtopology("triangle_cw")]
|
||||
[outputcontrolpoints(4)]
|
||||
[patchconstantfunc("XePatchConstant")]
|
||||
void main(InputPatch<XeHSControlPointOutput, 4> input_patch) {}
|
|
@ -0,0 +1,39 @@
|
|||
#include "xenos_draw.hlsli"
|
||||
|
||||
struct XeHSControlPointOutput {};
|
||||
|
||||
struct XeHSConstantDataOutput {
|
||||
float edges[3] : SV_TessFactor;
|
||||
float inside : SV_InsideTessFactor;
|
||||
};
|
||||
|
||||
XeHSConstantDataOutput XePatchConstant() {
|
||||
XeHSConstantDataOutput output = (XeHSConstantDataOutput)0;
|
||||
uint i;
|
||||
|
||||
// Xenos creates a uniform grid for triangles, but this can't be reproduced
|
||||
// using the tessellator on the PC, so just use what has the closest level of
|
||||
// detail.
|
||||
// https://www.slideshare.net/blackdevilvikas/next-generation-graphics-programming-on-xbox-360
|
||||
|
||||
// 1.0 is already added to the factor on the CPU, according to the images in
|
||||
// the slides above.
|
||||
|
||||
// Don't calculate any variables for SV_TessFactor outside of this loop, or
|
||||
// everything will be broken - FXC will add code to make it calculated only
|
||||
// once for all 3 fork instances, but doesn't do it properly.
|
||||
[unroll] for (i = 0; i < 3; ++i) {
|
||||
output.edges[i] = xe_tessellation_factor_range.y;
|
||||
}
|
||||
|
||||
output.inside = xe_tessellation_factor_range.y;
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
[domain("tri")]
|
||||
[partitioning("integer")]
|
||||
[outputtopology("triangle_cw")]
|
||||
[outputcontrolpoints(3)]
|
||||
[patchconstantfunc("XePatchConstant")]
|
||||
void main(InputPatch<XeHSControlPointOutput, 3> input_patch) {}
|
Binary file not shown.
|
@ -0,0 +1,357 @@
|
|||
// generated from `xb buildhlsl`
|
||||
// source: continuous_quad.hs.hlsl
|
||||
const uint8_t continuous_quad_hs[] = {
|
||||
0x44, 0x58, 0x42, 0x43, 0x5B, 0x37, 0x04, 0x6A, 0x15, 0x95, 0x9B, 0x7F,
|
||||
0xC8, 0x1B, 0xBD, 0xFD, 0x47, 0xBD, 0xC5, 0x79, 0x01, 0x00, 0x00, 0x00,
|
||||
0x8C, 0x10, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0xA0, 0x0D, 0x00, 0x00, 0xB0, 0x0D, 0x00, 0x00, 0xC0, 0x0D, 0x00, 0x00,
|
||||
0x84, 0x0E, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46,
|
||||
0x60, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0x53, 0x48,
|
||||
0x00, 0x05, 0x00, 0x00, 0x36, 0x0D, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25,
|
||||
0x3C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
|
||||
0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x73,
|
||||
0x79, 0x73, 0x74, 0x65, 0x6D, 0x5F, 0x63, 0x62, 0x75, 0x66, 0x66, 0x65,
|
||||
0x72, 0x00, 0xAB, 0xAB, 0x64, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
|
||||
0x90, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x07, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0B, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x31, 0x08, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x48, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x6C, 0x08, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xB4, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
|
||||
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x08, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x08, 0x00, 0x00,
|
||||
0x2C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD4, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xF8, 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x34, 0x09, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x09, 0x00, 0x00,
|
||||
0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x61, 0x09, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x7C, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xA0, 0x09, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x09, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xC9, 0x09, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xE4, 0x09, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x24, 0x0A, 0x00, 0x00,
|
||||
0x70, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x64, 0x0A, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x81, 0x0A, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x96, 0x0A, 0x00, 0x00,
|
||||
0x90, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xB1, 0x0A, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xCB, 0x0A, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00,
|
||||
0xA4, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x0B, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x0B, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x0B, 0x00, 0x00,
|
||||
0xB0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x53, 0x0B, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x69, 0x0B, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x0B, 0x00, 0x00,
|
||||
0xE0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x90, 0x0B, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xAB, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x0B, 0x00, 0x00,
|
||||
0x10, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xE3, 0x0B, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00,
|
||||
0x40, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x30, 0x0C, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x49, 0x0C, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x62, 0x0C, 0x00, 0x00,
|
||||
0x70, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x76, 0x0C, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x8A, 0x0C, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x0C, 0x00, 0x00,
|
||||
0xA0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xBA, 0x0C, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD2, 0x0C, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00,
|
||||
0xD0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x0D, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1C, 0x0D, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x66,
|
||||
0x6C, 0x61, 0x67, 0x73, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB,
|
||||
0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x07, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5F, 0x69, 0x6E,
|
||||
0x64, 0x65, 0x78, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5F, 0x62, 0x61, 0x73,
|
||||
0x65, 0x5F, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x69, 0x78, 0x65, 0x6C, 0x5F, 0x70, 0x6F, 0x73, 0x5F, 0x72, 0x65, 0x67,
|
||||
0x00, 0x78, 0x65, 0x5F, 0x6E, 0x64, 0x63, 0x5F, 0x73, 0x63, 0x61, 0x6C,
|
||||
0x65, 0x00, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x33, 0x00, 0xAB, 0xAB, 0xAB,
|
||||
0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x70, 0x69, 0x78, 0x65, 0x6C, 0x5F, 0x68, 0x61, 0x6C,
|
||||
0x66, 0x5F, 0x70, 0x69, 0x78, 0x65, 0x6C, 0x5F, 0x6F, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x00, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x00, 0xAB, 0xAB, 0xAB,
|
||||
0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x08, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x6E, 0x64, 0x63, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65,
|
||||
0x74, 0x00, 0x78, 0x65, 0x5F, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74,
|
||||
0x65, 0x73, 0x74, 0x00, 0x69, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x02, 0x00,
|
||||
0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x08, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x66, 0x6C,
|
||||
0x6F, 0x61, 0x74, 0x32, 0x00, 0xAB, 0xAB, 0xAB, 0x01, 0x00, 0x03, 0x00,
|
||||
0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x6D, 0x69,
|
||||
0x6E, 0x5F, 0x6D, 0x61, 0x78, 0x00, 0x78, 0x65, 0x5F, 0x70, 0x6F, 0x69,
|
||||
0x6E, 0x74, 0x5F, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6E, 0x5F, 0x74, 0x6F,
|
||||
0x5F, 0x6E, 0x64, 0x63, 0x00, 0x78, 0x65, 0x5F, 0x73, 0x61, 0x6D, 0x70,
|
||||
0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x6C, 0x6F, 0x67,
|
||||
0x32, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x32, 0x00, 0x01, 0x00, 0x13, 0x00,
|
||||
0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x76, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x61,
|
||||
0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x61,
|
||||
0x6E, 0x67, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x5F, 0x74, 0x69, 0x6C, 0x65, 0x73,
|
||||
0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x64, 0x65,
|
||||
0x70, 0x74, 0x68, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x5F, 0x64, 0x77, 0x6F,
|
||||
0x72, 0x64, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x63, 0x6F, 0x6C, 0x6F, 0x72,
|
||||
0x5F, 0x65, 0x78, 0x70, 0x5F, 0x62, 0x69, 0x61, 0x73, 0x00, 0x66, 0x6C,
|
||||
0x6F, 0x61, 0x74, 0x34, 0x00, 0xAB, 0xAB, 0xAB, 0x01, 0x00, 0x03, 0x00,
|
||||
0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x63,
|
||||
0x6F, 0x6C, 0x6F, 0x72, 0x5F, 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5F,
|
||||
0x6D, 0x61, 0x70, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x34, 0x00, 0xAB, 0xAB,
|
||||
0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0A, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x74, 0x65, 0x73, 0x73, 0x65, 0x6C, 0x6C, 0x61, 0x74,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x66, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x5F, 0x72,
|
||||
0x61, 0x6E, 0x67, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5F, 0x72, 0x61, 0x6E, 0x67,
|
||||
0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x70,
|
||||
0x6F, 0x6C, 0x79, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5F, 0x66,
|
||||
0x72, 0x6F, 0x6E, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x70, 0x6F, 0x6C, 0x79, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65,
|
||||
0x74, 0x5F, 0x62, 0x61, 0x63, 0x6B, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64,
|
||||
0x72, 0x61, 0x6D, 0x5F, 0x72, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69,
|
||||
0x6F, 0x6E, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x6C, 0x6F, 0x67,
|
||||
0x32, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73,
|
||||
0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x72, 0x65, 0x66, 0x65, 0x72,
|
||||
0x65, 0x6E, 0x63, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x72, 0x65,
|
||||
0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x00, 0x78, 0x65, 0x5F, 0x65,
|
||||
0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C,
|
||||
0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65,
|
||||
0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x66, 0x72, 0x6F, 0x6E, 0x74, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E,
|
||||
0x63, 0x69, 0x6C, 0x5F, 0x62, 0x61, 0x63, 0x6B, 0x00, 0x78, 0x65, 0x5F,
|
||||
0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x5F, 0x64,
|
||||
0x77, 0x6F, 0x72, 0x64, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72,
|
||||
0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x66, 0x6C, 0x61, 0x67, 0x73, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F,
|
||||
0x70, 0x61, 0x63, 0x6B, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x6C,
|
||||
0x6F, 0x77, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F,
|
||||
0x72, 0x74, 0x5F, 0x70, 0x61, 0x63, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x5F, 0x6C, 0x6F, 0x77, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64,
|
||||
0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x70, 0x61, 0x63, 0x6B, 0x5F,
|
||||
0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x68, 0x69, 0x67, 0x68, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x70,
|
||||
0x61, 0x63, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5F, 0x68,
|
||||
0x69, 0x67, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x5F, 0x72,
|
||||
0x74, 0x30, 0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x5F, 0x72,
|
||||
0x74, 0x32, 0x33, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F,
|
||||
0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65,
|
||||
0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72,
|
||||
0x61, 0x6D, 0x5F, 0x62, 0x6C, 0x65, 0x6E, 0x64, 0x5F, 0x72, 0x74, 0x30,
|
||||
0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62,
|
||||
0x6C, 0x65, 0x6E, 0x64, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62, 0x6C, 0x65, 0x6E, 0x64,
|
||||
0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x69, 0x6E, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x69, 0x6E, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F,
|
||||
0x72, 0x65, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x72, 0x74, 0x32,
|
||||
0x33, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20,
|
||||
0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61,
|
||||
0x64, 0x65, 0x72, 0x20, 0x43, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x65, 0x72,
|
||||
0x20, 0x31, 0x30, 0x2E, 0x31, 0x00, 0xAB, 0xAB, 0x49, 0x53, 0x47, 0x4E,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x4F, 0x53, 0x47, 0x4E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x50, 0x43, 0x53, 0x47, 0xBC, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x53, 0x56, 0x5F, 0x54,
|
||||
0x65, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x00, 0x53, 0x56,
|
||||
0x5F, 0x49, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x54, 0x65, 0x73, 0x73, 0x46,
|
||||
0x61, 0x63, 0x74, 0x6F, 0x72, 0x00, 0xAB, 0xAB, 0x53, 0x48, 0x45, 0x58,
|
||||
0x64, 0x01, 0x00, 0x00, 0x51, 0x00, 0x03, 0x00, 0x59, 0x00, 0x00, 0x00,
|
||||
0x71, 0x00, 0x00, 0x01, 0x93, 0x20, 0x00, 0x01, 0x94, 0x20, 0x00, 0x01,
|
||||
0x95, 0x18, 0x00, 0x01, 0x96, 0x20, 0x00, 0x01, 0x97, 0x18, 0x00, 0x01,
|
||||
0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07, 0x46, 0x8E, 0x30, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x01,
|
||||
0x99, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x02,
|
||||
0x00, 0x70, 0x01, 0x00, 0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04,
|
||||
0x12, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x0D, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02,
|
||||
0x01, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04,
|
||||
0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x70, 0x01, 0x00,
|
||||
0x36, 0x00, 0x00, 0x08, 0x12, 0x20, 0x90, 0x00, 0x0A, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
|
||||
0x73, 0x00, 0x00, 0x01, 0x99, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00,
|
||||
0x5F, 0x00, 0x00, 0x02, 0x00, 0x70, 0x01, 0x00, 0x67, 0x00, 0x00, 0x04,
|
||||
0x12, 0x20, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
|
||||
0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00,
|
||||
0x5B, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04, 0x12, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x70, 0x01, 0x00, 0x36, 0x00, 0x00, 0x09,
|
||||
0x12, 0x20, 0xD0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
|
||||
0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
|
@ -0,0 +1,130 @@
|
|||
//
|
||||
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
|
||||
//
|
||||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer xe_system_cbuffer
|
||||
// {
|
||||
//
|
||||
// uint xe_flags; // Offset: 0 Size: 4 [unused]
|
||||
// uint xe_vertex_index_endian; // Offset: 4 Size: 4 [unused]
|
||||
// uint xe_vertex_base_index; // Offset: 8 Size: 4 [unused]
|
||||
// uint xe_pixel_pos_reg; // Offset: 12 Size: 4 [unused]
|
||||
// float3 xe_ndc_scale; // Offset: 16 Size: 12 [unused]
|
||||
// float xe_pixel_half_pixel_offset; // Offset: 28 Size: 4 [unused]
|
||||
// float3 xe_ndc_offset; // Offset: 32 Size: 12 [unused]
|
||||
// int xe_alpha_test; // Offset: 44 Size: 4 [unused]
|
||||
// float2 xe_point_size; // Offset: 48 Size: 8 [unused]
|
||||
// float2 xe_point_size_min_max; // Offset: 56 Size: 8 [unused]
|
||||
// float2 xe_point_screen_to_ndc; // Offset: 64 Size: 8 [unused]
|
||||
// uint2 xe_sample_count_log2; // Offset: 72 Size: 8 [unused]
|
||||
// float2 xe_alpha_test_range; // Offset: 80 Size: 8 [unused]
|
||||
// uint xe_edram_pitch_tiles; // Offset: 88 Size: 4 [unused]
|
||||
// uint xe_edram_depth_base_dwords; // Offset: 92 Size: 4 [unused]
|
||||
// float4 xe_color_exp_bias; // Offset: 96 Size: 16 [unused]
|
||||
// uint4 xe_color_output_map; // Offset: 112 Size: 16 [unused]
|
||||
// float2 xe_tessellation_factor_range;// Offset: 128 Size: 8
|
||||
// float2 xe_edram_depth_range; // Offset: 136 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_front; // Offset: 144 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_back; // Offset: 152 Size: 8 [unused]
|
||||
// uint xe_edram_resolution_scale_log2;// Offset: 160 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_reference; // Offset: 164 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_read_mask; // Offset: 168 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_write_mask; // Offset: 172 Size: 4 [unused]
|
||||
// uint4 xe_edram_stencil_front; // Offset: 176 Size: 16 [unused]
|
||||
// uint4 xe_edram_stencil_back; // Offset: 192 Size: 16 [unused]
|
||||
// uint4 xe_edram_base_dwords; // Offset: 208 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_flags; // Offset: 224 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_width_low; // Offset: 240 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_offset_low; // Offset: 256 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_width_high; // Offset: 272 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_offset_high;// Offset: 288 Size: 16 [unused]
|
||||
// uint4 xe_edram_load_mask_rt01; // Offset: 304 Size: 16 [unused]
|
||||
// uint4 xe_edram_load_mask_rt23; // Offset: 320 Size: 16 [unused]
|
||||
// float4 xe_edram_load_scale_rt01; // Offset: 336 Size: 16 [unused]
|
||||
// float4 xe_edram_load_scale_rt23; // Offset: 352 Size: 16 [unused]
|
||||
// uint4 xe_edram_blend_rt01; // Offset: 368 Size: 16 [unused]
|
||||
// uint4 xe_edram_blend_rt23; // Offset: 384 Size: 16 [unused]
|
||||
// float4 xe_edram_blend_constant; // Offset: 400 Size: 16 [unused]
|
||||
// float4 xe_edram_store_min_rt01; // Offset: 416 Size: 16 [unused]
|
||||
// float4 xe_edram_store_min_rt23; // Offset: 432 Size: 16 [unused]
|
||||
// float4 xe_edram_store_max_rt01; // Offset: 448 Size: 16 [unused]
|
||||
// float4 xe_edram_store_max_rt23; // Offset: 464 Size: 16 [unused]
|
||||
// float4 xe_edram_store_scale_rt01; // Offset: 480 Size: 16 [unused]
|
||||
// float4 xe_edram_store_scale_rt23; // Offset: 496 Size: 16 [unused]
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// Resource Bindings:
|
||||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_system_cbuffer cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
// Patch Constant signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// SV_TessFactor 0 x 0 QUADEDGE float x
|
||||
// SV_TessFactor 1 x 1 QUADEDGE float x
|
||||
// SV_TessFactor 2 x 2 QUADEDGE float x
|
||||
// SV_TessFactor 3 x 3 QUADEDGE float x
|
||||
// SV_InsideTessFactor 0 x 4 QUADINT float x
|
||||
// SV_InsideTessFactor 1 x 5 QUADINT float x
|
||||
//
|
||||
//
|
||||
// Input signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// no Input
|
||||
//
|
||||
// Output signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// no Output
|
||||
// Tessellation Domain # of control points
|
||||
// -------------------- --------------------
|
||||
// Quadrilateral 4
|
||||
//
|
||||
// Tessellation Output Primitive Partitioning Type
|
||||
// ------------------------------ ------------------
|
||||
// Clockwise Triangles Even Fractional
|
||||
//
|
||||
hs_5_1
|
||||
hs_decls
|
||||
dcl_input_control_point_count 4
|
||||
dcl_output_control_point_count 4
|
||||
dcl_tessellator_domain domain_quad
|
||||
dcl_tessellator_partitioning partitioning_fractional_even
|
||||
dcl_tessellator_output_primitive output_triangle_cw
|
||||
dcl_globalFlags refactoringAllowed
|
||||
dcl_constantbuffer CB0[0:0][9], immediateIndexed, space=0
|
||||
hs_fork_phase
|
||||
dcl_hs_fork_phase_instance_count 4
|
||||
dcl_input vForkInstanceID
|
||||
dcl_output_siv o0.x, finalQuadUeq0EdgeTessFactor
|
||||
dcl_output_siv o1.x, finalQuadVeq0EdgeTessFactor
|
||||
dcl_output_siv o2.x, finalQuadUeq1EdgeTessFactor
|
||||
dcl_output_siv o3.x, finalQuadVeq1EdgeTessFactor
|
||||
dcl_temps 1
|
||||
dcl_indexrange o0.x 4
|
||||
mov r0.x, vForkInstanceID.x
|
||||
mov o[r0.x + 0].x, CB0[0][8].y
|
||||
ret
|
||||
hs_fork_phase
|
||||
dcl_hs_fork_phase_instance_count 2
|
||||
dcl_input vForkInstanceID
|
||||
dcl_output_siv o4.x, finalQuadUInsideTessFactor
|
||||
dcl_output_siv o5.x, finalQuadVInsideTessFactor
|
||||
dcl_temps 1
|
||||
dcl_indexrange o4.x 2
|
||||
mov r0.x, vForkInstanceID.x
|
||||
mov o[r0.x + 4].x, CB0[0][8].y
|
||||
ret
|
||||
// Approximately 6 instruction slots used
|
Binary file not shown.
|
@ -0,0 +1,345 @@
|
|||
// generated from `xb buildhlsl`
|
||||
// source: continuous_triangle.hs.hlsl
|
||||
const uint8_t continuous_triangle_hs[] = {
|
||||
0x44, 0x58, 0x42, 0x43, 0x14, 0x95, 0x7A, 0x7C, 0x48, 0x6B, 0x0C, 0x7E,
|
||||
0x76, 0xBB, 0x41, 0xBE, 0x47, 0x2A, 0xBC, 0x2C, 0x01, 0x00, 0x00, 0x00,
|
||||
0xFC, 0x0F, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0xA0, 0x0D, 0x00, 0x00, 0xB0, 0x0D, 0x00, 0x00, 0xC0, 0x0D, 0x00, 0x00,
|
||||
0x54, 0x0E, 0x00, 0x00, 0x60, 0x0F, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46,
|
||||
0x60, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0x53, 0x48,
|
||||
0x00, 0x05, 0x00, 0x00, 0x36, 0x0D, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25,
|
||||
0x3C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
|
||||
0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x73,
|
||||
0x79, 0x73, 0x74, 0x65, 0x6D, 0x5F, 0x63, 0x62, 0x75, 0x66, 0x66, 0x65,
|
||||
0x72, 0x00, 0xAB, 0xAB, 0x64, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
|
||||
0x90, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x07, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0B, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x31, 0x08, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x48, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x6C, 0x08, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xB4, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
|
||||
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x08, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x08, 0x00, 0x00,
|
||||
0x2C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD4, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xF8, 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x34, 0x09, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x09, 0x00, 0x00,
|
||||
0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x61, 0x09, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x7C, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xA0, 0x09, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x09, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xC9, 0x09, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xE4, 0x09, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x24, 0x0A, 0x00, 0x00,
|
||||
0x70, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x64, 0x0A, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x81, 0x0A, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x96, 0x0A, 0x00, 0x00,
|
||||
0x90, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xB1, 0x0A, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xCB, 0x0A, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00,
|
||||
0xA4, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x0B, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x0B, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x0B, 0x00, 0x00,
|
||||
0xB0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x53, 0x0B, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x69, 0x0B, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x0B, 0x00, 0x00,
|
||||
0xE0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x90, 0x0B, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xAB, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x0B, 0x00, 0x00,
|
||||
0x10, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xE3, 0x0B, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00,
|
||||
0x40, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x30, 0x0C, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x49, 0x0C, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x62, 0x0C, 0x00, 0x00,
|
||||
0x70, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x76, 0x0C, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x8A, 0x0C, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x0C, 0x00, 0x00,
|
||||
0xA0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xBA, 0x0C, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD2, 0x0C, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00,
|
||||
0xD0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x0D, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1C, 0x0D, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x66,
|
||||
0x6C, 0x61, 0x67, 0x73, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB,
|
||||
0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x07, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5F, 0x69, 0x6E,
|
||||
0x64, 0x65, 0x78, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5F, 0x62, 0x61, 0x73,
|
||||
0x65, 0x5F, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x69, 0x78, 0x65, 0x6C, 0x5F, 0x70, 0x6F, 0x73, 0x5F, 0x72, 0x65, 0x67,
|
||||
0x00, 0x78, 0x65, 0x5F, 0x6E, 0x64, 0x63, 0x5F, 0x73, 0x63, 0x61, 0x6C,
|
||||
0x65, 0x00, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x33, 0x00, 0xAB, 0xAB, 0xAB,
|
||||
0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x70, 0x69, 0x78, 0x65, 0x6C, 0x5F, 0x68, 0x61, 0x6C,
|
||||
0x66, 0x5F, 0x70, 0x69, 0x78, 0x65, 0x6C, 0x5F, 0x6F, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x00, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x00, 0xAB, 0xAB, 0xAB,
|
||||
0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x08, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x6E, 0x64, 0x63, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65,
|
||||
0x74, 0x00, 0x78, 0x65, 0x5F, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74,
|
||||
0x65, 0x73, 0x74, 0x00, 0x69, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x02, 0x00,
|
||||
0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x08, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x66, 0x6C,
|
||||
0x6F, 0x61, 0x74, 0x32, 0x00, 0xAB, 0xAB, 0xAB, 0x01, 0x00, 0x03, 0x00,
|
||||
0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x6D, 0x69,
|
||||
0x6E, 0x5F, 0x6D, 0x61, 0x78, 0x00, 0x78, 0x65, 0x5F, 0x70, 0x6F, 0x69,
|
||||
0x6E, 0x74, 0x5F, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6E, 0x5F, 0x74, 0x6F,
|
||||
0x5F, 0x6E, 0x64, 0x63, 0x00, 0x78, 0x65, 0x5F, 0x73, 0x61, 0x6D, 0x70,
|
||||
0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x6C, 0x6F, 0x67,
|
||||
0x32, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x32, 0x00, 0x01, 0x00, 0x13, 0x00,
|
||||
0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x76, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x61,
|
||||
0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x61,
|
||||
0x6E, 0x67, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x5F, 0x74, 0x69, 0x6C, 0x65, 0x73,
|
||||
0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x64, 0x65,
|
||||
0x70, 0x74, 0x68, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x5F, 0x64, 0x77, 0x6F,
|
||||
0x72, 0x64, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x63, 0x6F, 0x6C, 0x6F, 0x72,
|
||||
0x5F, 0x65, 0x78, 0x70, 0x5F, 0x62, 0x69, 0x61, 0x73, 0x00, 0x66, 0x6C,
|
||||
0x6F, 0x61, 0x74, 0x34, 0x00, 0xAB, 0xAB, 0xAB, 0x01, 0x00, 0x03, 0x00,
|
||||
0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x63,
|
||||
0x6F, 0x6C, 0x6F, 0x72, 0x5F, 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5F,
|
||||
0x6D, 0x61, 0x70, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x34, 0x00, 0xAB, 0xAB,
|
||||
0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0A, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x74, 0x65, 0x73, 0x73, 0x65, 0x6C, 0x6C, 0x61, 0x74,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x66, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x5F, 0x72,
|
||||
0x61, 0x6E, 0x67, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5F, 0x72, 0x61, 0x6E, 0x67,
|
||||
0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x70,
|
||||
0x6F, 0x6C, 0x79, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5F, 0x66,
|
||||
0x72, 0x6F, 0x6E, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x70, 0x6F, 0x6C, 0x79, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65,
|
||||
0x74, 0x5F, 0x62, 0x61, 0x63, 0x6B, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64,
|
||||
0x72, 0x61, 0x6D, 0x5F, 0x72, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69,
|
||||
0x6F, 0x6E, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x6C, 0x6F, 0x67,
|
||||
0x32, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73,
|
||||
0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x72, 0x65, 0x66, 0x65, 0x72,
|
||||
0x65, 0x6E, 0x63, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x72, 0x65,
|
||||
0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x00, 0x78, 0x65, 0x5F, 0x65,
|
||||
0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C,
|
||||
0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65,
|
||||
0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x66, 0x72, 0x6F, 0x6E, 0x74, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E,
|
||||
0x63, 0x69, 0x6C, 0x5F, 0x62, 0x61, 0x63, 0x6B, 0x00, 0x78, 0x65, 0x5F,
|
||||
0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x5F, 0x64,
|
||||
0x77, 0x6F, 0x72, 0x64, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72,
|
||||
0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x66, 0x6C, 0x61, 0x67, 0x73, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F,
|
||||
0x70, 0x61, 0x63, 0x6B, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x6C,
|
||||
0x6F, 0x77, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F,
|
||||
0x72, 0x74, 0x5F, 0x70, 0x61, 0x63, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x5F, 0x6C, 0x6F, 0x77, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64,
|
||||
0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x70, 0x61, 0x63, 0x6B, 0x5F,
|
||||
0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x68, 0x69, 0x67, 0x68, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x70,
|
||||
0x61, 0x63, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5F, 0x68,
|
||||
0x69, 0x67, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x5F, 0x72,
|
||||
0x74, 0x30, 0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x5F, 0x72,
|
||||
0x74, 0x32, 0x33, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F,
|
||||
0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65,
|
||||
0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72,
|
||||
0x61, 0x6D, 0x5F, 0x62, 0x6C, 0x65, 0x6E, 0x64, 0x5F, 0x72, 0x74, 0x30,
|
||||
0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62,
|
||||
0x6C, 0x65, 0x6E, 0x64, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62, 0x6C, 0x65, 0x6E, 0x64,
|
||||
0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x69, 0x6E, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x69, 0x6E, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F,
|
||||
0x72, 0x65, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x72, 0x74, 0x32,
|
||||
0x33, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20,
|
||||
0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61,
|
||||
0x64, 0x65, 0x72, 0x20, 0x43, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x65, 0x72,
|
||||
0x20, 0x31, 0x30, 0x2E, 0x31, 0x00, 0xAB, 0xAB, 0x49, 0x53, 0x47, 0x4E,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x4F, 0x53, 0x47, 0x4E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x50, 0x43, 0x53, 0x47, 0x8C, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x53, 0x56, 0x5F, 0x54,
|
||||
0x65, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x00, 0x53, 0x56,
|
||||
0x5F, 0x49, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x54, 0x65, 0x73, 0x73, 0x46,
|
||||
0x61, 0x63, 0x74, 0x6F, 0x72, 0x00, 0xAB, 0xAB, 0x53, 0x48, 0x45, 0x58,
|
||||
0x04, 0x01, 0x00, 0x00, 0x51, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00,
|
||||
0x71, 0x00, 0x00, 0x01, 0x93, 0x18, 0x00, 0x01, 0x94, 0x18, 0x00, 0x01,
|
||||
0x95, 0x10, 0x00, 0x01, 0x96, 0x20, 0x00, 0x01, 0x97, 0x18, 0x00, 0x01,
|
||||
0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07, 0x46, 0x8E, 0x30, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x01,
|
||||
0x99, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x02,
|
||||
0x00, 0x70, 0x01, 0x00, 0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04,
|
||||
0x12, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
|
||||
0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x13, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00,
|
||||
0x5B, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04, 0x12, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x70, 0x01, 0x00, 0x36, 0x00, 0x00, 0x08,
|
||||
0x12, 0x20, 0x90, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01, 0x73, 0x00, 0x00, 0x01,
|
||||
0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x14, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x07, 0x12, 0x20, 0x10, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
|
||||
0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
|
@ -0,0 +1,121 @@
|
|||
//
|
||||
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
|
||||
//
|
||||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer xe_system_cbuffer
|
||||
// {
|
||||
//
|
||||
// uint xe_flags; // Offset: 0 Size: 4 [unused]
|
||||
// uint xe_vertex_index_endian; // Offset: 4 Size: 4 [unused]
|
||||
// uint xe_vertex_base_index; // Offset: 8 Size: 4 [unused]
|
||||
// uint xe_pixel_pos_reg; // Offset: 12 Size: 4 [unused]
|
||||
// float3 xe_ndc_scale; // Offset: 16 Size: 12 [unused]
|
||||
// float xe_pixel_half_pixel_offset; // Offset: 28 Size: 4 [unused]
|
||||
// float3 xe_ndc_offset; // Offset: 32 Size: 12 [unused]
|
||||
// int xe_alpha_test; // Offset: 44 Size: 4 [unused]
|
||||
// float2 xe_point_size; // Offset: 48 Size: 8 [unused]
|
||||
// float2 xe_point_size_min_max; // Offset: 56 Size: 8 [unused]
|
||||
// float2 xe_point_screen_to_ndc; // Offset: 64 Size: 8 [unused]
|
||||
// uint2 xe_sample_count_log2; // Offset: 72 Size: 8 [unused]
|
||||
// float2 xe_alpha_test_range; // Offset: 80 Size: 8 [unused]
|
||||
// uint xe_edram_pitch_tiles; // Offset: 88 Size: 4 [unused]
|
||||
// uint xe_edram_depth_base_dwords; // Offset: 92 Size: 4 [unused]
|
||||
// float4 xe_color_exp_bias; // Offset: 96 Size: 16 [unused]
|
||||
// uint4 xe_color_output_map; // Offset: 112 Size: 16 [unused]
|
||||
// float2 xe_tessellation_factor_range;// Offset: 128 Size: 8
|
||||
// float2 xe_edram_depth_range; // Offset: 136 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_front; // Offset: 144 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_back; // Offset: 152 Size: 8 [unused]
|
||||
// uint xe_edram_resolution_scale_log2;// Offset: 160 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_reference; // Offset: 164 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_read_mask; // Offset: 168 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_write_mask; // Offset: 172 Size: 4 [unused]
|
||||
// uint4 xe_edram_stencil_front; // Offset: 176 Size: 16 [unused]
|
||||
// uint4 xe_edram_stencil_back; // Offset: 192 Size: 16 [unused]
|
||||
// uint4 xe_edram_base_dwords; // Offset: 208 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_flags; // Offset: 224 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_width_low; // Offset: 240 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_offset_low; // Offset: 256 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_width_high; // Offset: 272 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_offset_high;// Offset: 288 Size: 16 [unused]
|
||||
// uint4 xe_edram_load_mask_rt01; // Offset: 304 Size: 16 [unused]
|
||||
// uint4 xe_edram_load_mask_rt23; // Offset: 320 Size: 16 [unused]
|
||||
// float4 xe_edram_load_scale_rt01; // Offset: 336 Size: 16 [unused]
|
||||
// float4 xe_edram_load_scale_rt23; // Offset: 352 Size: 16 [unused]
|
||||
// uint4 xe_edram_blend_rt01; // Offset: 368 Size: 16 [unused]
|
||||
// uint4 xe_edram_blend_rt23; // Offset: 384 Size: 16 [unused]
|
||||
// float4 xe_edram_blend_constant; // Offset: 400 Size: 16 [unused]
|
||||
// float4 xe_edram_store_min_rt01; // Offset: 416 Size: 16 [unused]
|
||||
// float4 xe_edram_store_min_rt23; // Offset: 432 Size: 16 [unused]
|
||||
// float4 xe_edram_store_max_rt01; // Offset: 448 Size: 16 [unused]
|
||||
// float4 xe_edram_store_max_rt23; // Offset: 464 Size: 16 [unused]
|
||||
// float4 xe_edram_store_scale_rt01; // Offset: 480 Size: 16 [unused]
|
||||
// float4 xe_edram_store_scale_rt23; // Offset: 496 Size: 16 [unused]
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// Resource Bindings:
|
||||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_system_cbuffer cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
// Patch Constant signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// SV_TessFactor 0 x 0 TRIEDGE float x
|
||||
// SV_TessFactor 1 x 1 TRIEDGE float x
|
||||
// SV_TessFactor 2 x 2 TRIEDGE float x
|
||||
// SV_InsideTessFactor 0 x 3 TRIINT float x
|
||||
//
|
||||
//
|
||||
// Input signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// no Input
|
||||
//
|
||||
// Output signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// no Output
|
||||
// Tessellation Domain # of control points
|
||||
// -------------------- --------------------
|
||||
// Triangle 3
|
||||
//
|
||||
// Tessellation Output Primitive Partitioning Type
|
||||
// ------------------------------ ------------------
|
||||
// Clockwise Triangles Even Fractional
|
||||
//
|
||||
hs_5_1
|
||||
hs_decls
|
||||
dcl_input_control_point_count 3
|
||||
dcl_output_control_point_count 3
|
||||
dcl_tessellator_domain domain_tri
|
||||
dcl_tessellator_partitioning partitioning_fractional_even
|
||||
dcl_tessellator_output_primitive output_triangle_cw
|
||||
dcl_globalFlags refactoringAllowed
|
||||
dcl_constantbuffer CB0[0:0][9], immediateIndexed, space=0
|
||||
hs_fork_phase
|
||||
dcl_hs_fork_phase_instance_count 3
|
||||
dcl_input vForkInstanceID
|
||||
dcl_output_siv o0.x, finalTriUeq0EdgeTessFactor
|
||||
dcl_output_siv o1.x, finalTriVeq0EdgeTessFactor
|
||||
dcl_output_siv o2.x, finalTriWeq0EdgeTessFactor
|
||||
dcl_temps 1
|
||||
dcl_indexrange o0.x 3
|
||||
mov r0.x, vForkInstanceID.x
|
||||
mov o[r0.x + 0].x, CB0[0][8].y
|
||||
ret
|
||||
hs_fork_phase
|
||||
dcl_output_siv o3.x, finalTriInsideTessFactor
|
||||
mov o3.x, CB0[0][8].y
|
||||
ret
|
||||
// Approximately 5 instruction slots used
|
Binary file not shown.
|
@ -0,0 +1,357 @@
|
|||
// generated from `xb buildhlsl`
|
||||
// source: discrete_quad.hs.hlsl
|
||||
const uint8_t discrete_quad_hs[] = {
|
||||
0x44, 0x58, 0x42, 0x43, 0x81, 0xD2, 0x5A, 0x72, 0x8E, 0x1B, 0x3A, 0x94,
|
||||
0xBB, 0x64, 0x62, 0x9D, 0x3E, 0xAD, 0x5A, 0x12, 0x01, 0x00, 0x00, 0x00,
|
||||
0x8C, 0x10, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0xA0, 0x0D, 0x00, 0x00, 0xB0, 0x0D, 0x00, 0x00, 0xC0, 0x0D, 0x00, 0x00,
|
||||
0x84, 0x0E, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46,
|
||||
0x60, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0x53, 0x48,
|
||||
0x00, 0x05, 0x00, 0x00, 0x36, 0x0D, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25,
|
||||
0x3C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
|
||||
0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x73,
|
||||
0x79, 0x73, 0x74, 0x65, 0x6D, 0x5F, 0x63, 0x62, 0x75, 0x66, 0x66, 0x65,
|
||||
0x72, 0x00, 0xAB, 0xAB, 0x64, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
|
||||
0x90, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x07, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0B, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x31, 0x08, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x48, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x6C, 0x08, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xB4, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
|
||||
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x08, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x08, 0x00, 0x00,
|
||||
0x2C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD4, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xF8, 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x34, 0x09, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x09, 0x00, 0x00,
|
||||
0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x61, 0x09, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x7C, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xA0, 0x09, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x09, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xC9, 0x09, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xE4, 0x09, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x24, 0x0A, 0x00, 0x00,
|
||||
0x70, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x64, 0x0A, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x81, 0x0A, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x96, 0x0A, 0x00, 0x00,
|
||||
0x90, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xB1, 0x0A, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xCB, 0x0A, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00,
|
||||
0xA4, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x0B, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x0B, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x0B, 0x00, 0x00,
|
||||
0xB0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x53, 0x0B, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x69, 0x0B, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x0B, 0x00, 0x00,
|
||||
0xE0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x90, 0x0B, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xAB, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x0B, 0x00, 0x00,
|
||||
0x10, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xE3, 0x0B, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00,
|
||||
0x40, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x30, 0x0C, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x49, 0x0C, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x62, 0x0C, 0x00, 0x00,
|
||||
0x70, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x76, 0x0C, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x8A, 0x0C, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x0C, 0x00, 0x00,
|
||||
0xA0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xBA, 0x0C, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD2, 0x0C, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00,
|
||||
0xD0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x0D, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1C, 0x0D, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x66,
|
||||
0x6C, 0x61, 0x67, 0x73, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB,
|
||||
0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x07, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5F, 0x69, 0x6E,
|
||||
0x64, 0x65, 0x78, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5F, 0x62, 0x61, 0x73,
|
||||
0x65, 0x5F, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x69, 0x78, 0x65, 0x6C, 0x5F, 0x70, 0x6F, 0x73, 0x5F, 0x72, 0x65, 0x67,
|
||||
0x00, 0x78, 0x65, 0x5F, 0x6E, 0x64, 0x63, 0x5F, 0x73, 0x63, 0x61, 0x6C,
|
||||
0x65, 0x00, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x33, 0x00, 0xAB, 0xAB, 0xAB,
|
||||
0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x70, 0x69, 0x78, 0x65, 0x6C, 0x5F, 0x68, 0x61, 0x6C,
|
||||
0x66, 0x5F, 0x70, 0x69, 0x78, 0x65, 0x6C, 0x5F, 0x6F, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x00, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x00, 0xAB, 0xAB, 0xAB,
|
||||
0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x08, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x6E, 0x64, 0x63, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65,
|
||||
0x74, 0x00, 0x78, 0x65, 0x5F, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74,
|
||||
0x65, 0x73, 0x74, 0x00, 0x69, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x02, 0x00,
|
||||
0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x08, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x66, 0x6C,
|
||||
0x6F, 0x61, 0x74, 0x32, 0x00, 0xAB, 0xAB, 0xAB, 0x01, 0x00, 0x03, 0x00,
|
||||
0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x6D, 0x69,
|
||||
0x6E, 0x5F, 0x6D, 0x61, 0x78, 0x00, 0x78, 0x65, 0x5F, 0x70, 0x6F, 0x69,
|
||||
0x6E, 0x74, 0x5F, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6E, 0x5F, 0x74, 0x6F,
|
||||
0x5F, 0x6E, 0x64, 0x63, 0x00, 0x78, 0x65, 0x5F, 0x73, 0x61, 0x6D, 0x70,
|
||||
0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x6C, 0x6F, 0x67,
|
||||
0x32, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x32, 0x00, 0x01, 0x00, 0x13, 0x00,
|
||||
0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x76, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x61,
|
||||
0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x61,
|
||||
0x6E, 0x67, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x5F, 0x74, 0x69, 0x6C, 0x65, 0x73,
|
||||
0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x64, 0x65,
|
||||
0x70, 0x74, 0x68, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x5F, 0x64, 0x77, 0x6F,
|
||||
0x72, 0x64, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x63, 0x6F, 0x6C, 0x6F, 0x72,
|
||||
0x5F, 0x65, 0x78, 0x70, 0x5F, 0x62, 0x69, 0x61, 0x73, 0x00, 0x66, 0x6C,
|
||||
0x6F, 0x61, 0x74, 0x34, 0x00, 0xAB, 0xAB, 0xAB, 0x01, 0x00, 0x03, 0x00,
|
||||
0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x63,
|
||||
0x6F, 0x6C, 0x6F, 0x72, 0x5F, 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5F,
|
||||
0x6D, 0x61, 0x70, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x34, 0x00, 0xAB, 0xAB,
|
||||
0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0A, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x74, 0x65, 0x73, 0x73, 0x65, 0x6C, 0x6C, 0x61, 0x74,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x66, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x5F, 0x72,
|
||||
0x61, 0x6E, 0x67, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5F, 0x72, 0x61, 0x6E, 0x67,
|
||||
0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x70,
|
||||
0x6F, 0x6C, 0x79, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5F, 0x66,
|
||||
0x72, 0x6F, 0x6E, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x70, 0x6F, 0x6C, 0x79, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65,
|
||||
0x74, 0x5F, 0x62, 0x61, 0x63, 0x6B, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64,
|
||||
0x72, 0x61, 0x6D, 0x5F, 0x72, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69,
|
||||
0x6F, 0x6E, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x6C, 0x6F, 0x67,
|
||||
0x32, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73,
|
||||
0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x72, 0x65, 0x66, 0x65, 0x72,
|
||||
0x65, 0x6E, 0x63, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x72, 0x65,
|
||||
0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x00, 0x78, 0x65, 0x5F, 0x65,
|
||||
0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C,
|
||||
0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65,
|
||||
0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x66, 0x72, 0x6F, 0x6E, 0x74, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E,
|
||||
0x63, 0x69, 0x6C, 0x5F, 0x62, 0x61, 0x63, 0x6B, 0x00, 0x78, 0x65, 0x5F,
|
||||
0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x5F, 0x64,
|
||||
0x77, 0x6F, 0x72, 0x64, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72,
|
||||
0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x66, 0x6C, 0x61, 0x67, 0x73, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F,
|
||||
0x70, 0x61, 0x63, 0x6B, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x6C,
|
||||
0x6F, 0x77, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F,
|
||||
0x72, 0x74, 0x5F, 0x70, 0x61, 0x63, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x5F, 0x6C, 0x6F, 0x77, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64,
|
||||
0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x70, 0x61, 0x63, 0x6B, 0x5F,
|
||||
0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x68, 0x69, 0x67, 0x68, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x70,
|
||||
0x61, 0x63, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5F, 0x68,
|
||||
0x69, 0x67, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x5F, 0x72,
|
||||
0x74, 0x30, 0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x5F, 0x72,
|
||||
0x74, 0x32, 0x33, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F,
|
||||
0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65,
|
||||
0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72,
|
||||
0x61, 0x6D, 0x5F, 0x62, 0x6C, 0x65, 0x6E, 0x64, 0x5F, 0x72, 0x74, 0x30,
|
||||
0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62,
|
||||
0x6C, 0x65, 0x6E, 0x64, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62, 0x6C, 0x65, 0x6E, 0x64,
|
||||
0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x69, 0x6E, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x69, 0x6E, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F,
|
||||
0x72, 0x65, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x72, 0x74, 0x32,
|
||||
0x33, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20,
|
||||
0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61,
|
||||
0x64, 0x65, 0x72, 0x20, 0x43, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x65, 0x72,
|
||||
0x20, 0x31, 0x30, 0x2E, 0x31, 0x00, 0xAB, 0xAB, 0x49, 0x53, 0x47, 0x4E,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x4F, 0x53, 0x47, 0x4E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x50, 0x43, 0x53, 0x47, 0xBC, 0x00, 0x00, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x53, 0x56, 0x5F, 0x54,
|
||||
0x65, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x00, 0x53, 0x56,
|
||||
0x5F, 0x49, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x54, 0x65, 0x73, 0x73, 0x46,
|
||||
0x61, 0x63, 0x74, 0x6F, 0x72, 0x00, 0xAB, 0xAB, 0x53, 0x48, 0x45, 0x58,
|
||||
0x64, 0x01, 0x00, 0x00, 0x51, 0x00, 0x03, 0x00, 0x59, 0x00, 0x00, 0x00,
|
||||
0x71, 0x00, 0x00, 0x01, 0x93, 0x20, 0x00, 0x01, 0x94, 0x20, 0x00, 0x01,
|
||||
0x95, 0x18, 0x00, 0x01, 0x96, 0x08, 0x00, 0x01, 0x97, 0x18, 0x00, 0x01,
|
||||
0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07, 0x46, 0x8E, 0x30, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x01,
|
||||
0x99, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x02,
|
||||
0x00, 0x70, 0x01, 0x00, 0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04,
|
||||
0x12, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x0D, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02,
|
||||
0x01, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04,
|
||||
0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x70, 0x01, 0x00,
|
||||
0x36, 0x00, 0x00, 0x08, 0x12, 0x20, 0x90, 0x00, 0x0A, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
|
||||
0x73, 0x00, 0x00, 0x01, 0x99, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00,
|
||||
0x5F, 0x00, 0x00, 0x02, 0x00, 0x70, 0x01, 0x00, 0x67, 0x00, 0x00, 0x04,
|
||||
0x12, 0x20, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
|
||||
0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00,
|
||||
0x5B, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04, 0x12, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x70, 0x01, 0x00, 0x36, 0x00, 0x00, 0x09,
|
||||
0x12, 0x20, 0xD0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
|
||||
0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
|
@ -0,0 +1,130 @@
|
|||
//
|
||||
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
|
||||
//
|
||||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer xe_system_cbuffer
|
||||
// {
|
||||
//
|
||||
// uint xe_flags; // Offset: 0 Size: 4 [unused]
|
||||
// uint xe_vertex_index_endian; // Offset: 4 Size: 4 [unused]
|
||||
// uint xe_vertex_base_index; // Offset: 8 Size: 4 [unused]
|
||||
// uint xe_pixel_pos_reg; // Offset: 12 Size: 4 [unused]
|
||||
// float3 xe_ndc_scale; // Offset: 16 Size: 12 [unused]
|
||||
// float xe_pixel_half_pixel_offset; // Offset: 28 Size: 4 [unused]
|
||||
// float3 xe_ndc_offset; // Offset: 32 Size: 12 [unused]
|
||||
// int xe_alpha_test; // Offset: 44 Size: 4 [unused]
|
||||
// float2 xe_point_size; // Offset: 48 Size: 8 [unused]
|
||||
// float2 xe_point_size_min_max; // Offset: 56 Size: 8 [unused]
|
||||
// float2 xe_point_screen_to_ndc; // Offset: 64 Size: 8 [unused]
|
||||
// uint2 xe_sample_count_log2; // Offset: 72 Size: 8 [unused]
|
||||
// float2 xe_alpha_test_range; // Offset: 80 Size: 8 [unused]
|
||||
// uint xe_edram_pitch_tiles; // Offset: 88 Size: 4 [unused]
|
||||
// uint xe_edram_depth_base_dwords; // Offset: 92 Size: 4 [unused]
|
||||
// float4 xe_color_exp_bias; // Offset: 96 Size: 16 [unused]
|
||||
// uint4 xe_color_output_map; // Offset: 112 Size: 16 [unused]
|
||||
// float2 xe_tessellation_factor_range;// Offset: 128 Size: 8
|
||||
// float2 xe_edram_depth_range; // Offset: 136 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_front; // Offset: 144 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_back; // Offset: 152 Size: 8 [unused]
|
||||
// uint xe_edram_resolution_scale_log2;// Offset: 160 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_reference; // Offset: 164 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_read_mask; // Offset: 168 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_write_mask; // Offset: 172 Size: 4 [unused]
|
||||
// uint4 xe_edram_stencil_front; // Offset: 176 Size: 16 [unused]
|
||||
// uint4 xe_edram_stencil_back; // Offset: 192 Size: 16 [unused]
|
||||
// uint4 xe_edram_base_dwords; // Offset: 208 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_flags; // Offset: 224 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_width_low; // Offset: 240 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_offset_low; // Offset: 256 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_width_high; // Offset: 272 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_offset_high;// Offset: 288 Size: 16 [unused]
|
||||
// uint4 xe_edram_load_mask_rt01; // Offset: 304 Size: 16 [unused]
|
||||
// uint4 xe_edram_load_mask_rt23; // Offset: 320 Size: 16 [unused]
|
||||
// float4 xe_edram_load_scale_rt01; // Offset: 336 Size: 16 [unused]
|
||||
// float4 xe_edram_load_scale_rt23; // Offset: 352 Size: 16 [unused]
|
||||
// uint4 xe_edram_blend_rt01; // Offset: 368 Size: 16 [unused]
|
||||
// uint4 xe_edram_blend_rt23; // Offset: 384 Size: 16 [unused]
|
||||
// float4 xe_edram_blend_constant; // Offset: 400 Size: 16 [unused]
|
||||
// float4 xe_edram_store_min_rt01; // Offset: 416 Size: 16 [unused]
|
||||
// float4 xe_edram_store_min_rt23; // Offset: 432 Size: 16 [unused]
|
||||
// float4 xe_edram_store_max_rt01; // Offset: 448 Size: 16 [unused]
|
||||
// float4 xe_edram_store_max_rt23; // Offset: 464 Size: 16 [unused]
|
||||
// float4 xe_edram_store_scale_rt01; // Offset: 480 Size: 16 [unused]
|
||||
// float4 xe_edram_store_scale_rt23; // Offset: 496 Size: 16 [unused]
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// Resource Bindings:
|
||||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_system_cbuffer cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
// Patch Constant signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// SV_TessFactor 0 x 0 QUADEDGE float x
|
||||
// SV_TessFactor 1 x 1 QUADEDGE float x
|
||||
// SV_TessFactor 2 x 2 QUADEDGE float x
|
||||
// SV_TessFactor 3 x 3 QUADEDGE float x
|
||||
// SV_InsideTessFactor 0 x 4 QUADINT float x
|
||||
// SV_InsideTessFactor 1 x 5 QUADINT float x
|
||||
//
|
||||
//
|
||||
// Input signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// no Input
|
||||
//
|
||||
// Output signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// no Output
|
||||
// Tessellation Domain # of control points
|
||||
// -------------------- --------------------
|
||||
// Quadrilateral 4
|
||||
//
|
||||
// Tessellation Output Primitive Partitioning Type
|
||||
// ------------------------------ ------------------
|
||||
// Clockwise Triangles Integer
|
||||
//
|
||||
hs_5_1
|
||||
hs_decls
|
||||
dcl_input_control_point_count 4
|
||||
dcl_output_control_point_count 4
|
||||
dcl_tessellator_domain domain_quad
|
||||
dcl_tessellator_partitioning partitioning_integer
|
||||
dcl_tessellator_output_primitive output_triangle_cw
|
||||
dcl_globalFlags refactoringAllowed
|
||||
dcl_constantbuffer CB0[0:0][9], immediateIndexed, space=0
|
||||
hs_fork_phase
|
||||
dcl_hs_fork_phase_instance_count 4
|
||||
dcl_input vForkInstanceID
|
||||
dcl_output_siv o0.x, finalQuadUeq0EdgeTessFactor
|
||||
dcl_output_siv o1.x, finalQuadVeq0EdgeTessFactor
|
||||
dcl_output_siv o2.x, finalQuadUeq1EdgeTessFactor
|
||||
dcl_output_siv o3.x, finalQuadVeq1EdgeTessFactor
|
||||
dcl_temps 1
|
||||
dcl_indexrange o0.x 4
|
||||
mov r0.x, vForkInstanceID.x
|
||||
mov o[r0.x + 0].x, CB0[0][8].y
|
||||
ret
|
||||
hs_fork_phase
|
||||
dcl_hs_fork_phase_instance_count 2
|
||||
dcl_input vForkInstanceID
|
||||
dcl_output_siv o4.x, finalQuadUInsideTessFactor
|
||||
dcl_output_siv o5.x, finalQuadVInsideTessFactor
|
||||
dcl_temps 1
|
||||
dcl_indexrange o4.x 2
|
||||
mov r0.x, vForkInstanceID.x
|
||||
mov o[r0.x + 4].x, CB0[0][8].y
|
||||
ret
|
||||
// Approximately 6 instruction slots used
|
Binary file not shown.
|
@ -0,0 +1,345 @@
|
|||
// generated from `xb buildhlsl`
|
||||
// source: discrete_triangle.hs.hlsl
|
||||
const uint8_t discrete_triangle_hs[] = {
|
||||
0x44, 0x58, 0x42, 0x43, 0x1E, 0x53, 0x2C, 0x4C, 0xC6, 0xA1, 0x35, 0x71,
|
||||
0x0C, 0x7F, 0xBA, 0xC6, 0x8C, 0x86, 0x55, 0x76, 0x01, 0x00, 0x00, 0x00,
|
||||
0xFC, 0x0F, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0xA0, 0x0D, 0x00, 0x00, 0xB0, 0x0D, 0x00, 0x00, 0xC0, 0x0D, 0x00, 0x00,
|
||||
0x54, 0x0E, 0x00, 0x00, 0x60, 0x0F, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46,
|
||||
0x60, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0x53, 0x48,
|
||||
0x00, 0x05, 0x00, 0x00, 0x36, 0x0D, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25,
|
||||
0x3C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
|
||||
0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x73,
|
||||
0x79, 0x73, 0x74, 0x65, 0x6D, 0x5F, 0x63, 0x62, 0x75, 0x66, 0x66, 0x65,
|
||||
0x72, 0x00, 0xAB, 0xAB, 0x64, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
|
||||
0x90, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x07, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0B, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x31, 0x08, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x48, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x6C, 0x08, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xB4, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
|
||||
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x08, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x08, 0x00, 0x00,
|
||||
0x2C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD4, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xF8, 0x08, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x34, 0x09, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x09, 0x00, 0x00,
|
||||
0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x61, 0x09, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x7C, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xA0, 0x09, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x09, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xC9, 0x09, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xE4, 0x09, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x24, 0x0A, 0x00, 0x00,
|
||||
0x70, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x64, 0x0A, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x81, 0x0A, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x96, 0x0A, 0x00, 0x00,
|
||||
0x90, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xB1, 0x0A, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xCB, 0x0A, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00,
|
||||
0xA4, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x0B, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x0B, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x0B, 0x00, 0x00,
|
||||
0xB0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x53, 0x0B, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x69, 0x0B, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x0B, 0x00, 0x00,
|
||||
0xE0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x90, 0x0B, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xAB, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x0B, 0x00, 0x00,
|
||||
0x10, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xE3, 0x0B, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00,
|
||||
0x40, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x30, 0x0C, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x49, 0x0C, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x62, 0x0C, 0x00, 0x00,
|
||||
0x70, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x76, 0x0C, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x8A, 0x0C, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x0C, 0x00, 0x00,
|
||||
0xA0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xBA, 0x0C, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD2, 0x0C, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00,
|
||||
0xD0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x0D, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1C, 0x0D, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x66,
|
||||
0x6C, 0x61, 0x67, 0x73, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB,
|
||||
0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x07, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5F, 0x69, 0x6E,
|
||||
0x64, 0x65, 0x78, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5F, 0x62, 0x61, 0x73,
|
||||
0x65, 0x5F, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x69, 0x78, 0x65, 0x6C, 0x5F, 0x70, 0x6F, 0x73, 0x5F, 0x72, 0x65, 0x67,
|
||||
0x00, 0x78, 0x65, 0x5F, 0x6E, 0x64, 0x63, 0x5F, 0x73, 0x63, 0x61, 0x6C,
|
||||
0x65, 0x00, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x33, 0x00, 0xAB, 0xAB, 0xAB,
|
||||
0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x70, 0x69, 0x78, 0x65, 0x6C, 0x5F, 0x68, 0x61, 0x6C,
|
||||
0x66, 0x5F, 0x70, 0x69, 0x78, 0x65, 0x6C, 0x5F, 0x6F, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x00, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x00, 0xAB, 0xAB, 0xAB,
|
||||
0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x08, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x6E, 0x64, 0x63, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65,
|
||||
0x74, 0x00, 0x78, 0x65, 0x5F, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74,
|
||||
0x65, 0x73, 0x74, 0x00, 0x69, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x02, 0x00,
|
||||
0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xD0, 0x08, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x66, 0x6C,
|
||||
0x6F, 0x61, 0x74, 0x32, 0x00, 0xAB, 0xAB, 0xAB, 0x01, 0x00, 0x03, 0x00,
|
||||
0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x70,
|
||||
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x6D, 0x69,
|
||||
0x6E, 0x5F, 0x6D, 0x61, 0x78, 0x00, 0x78, 0x65, 0x5F, 0x70, 0x6F, 0x69,
|
||||
0x6E, 0x74, 0x5F, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6E, 0x5F, 0x74, 0x6F,
|
||||
0x5F, 0x6E, 0x64, 0x63, 0x00, 0x78, 0x65, 0x5F, 0x73, 0x61, 0x6D, 0x70,
|
||||
0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x5F, 0x6C, 0x6F, 0x67,
|
||||
0x32, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x32, 0x00, 0x01, 0x00, 0x13, 0x00,
|
||||
0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x76, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x61,
|
||||
0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x61,
|
||||
0x6E, 0x67, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x5F, 0x74, 0x69, 0x6C, 0x65, 0x73,
|
||||
0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x64, 0x65,
|
||||
0x70, 0x74, 0x68, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x5F, 0x64, 0x77, 0x6F,
|
||||
0x72, 0x64, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x63, 0x6F, 0x6C, 0x6F, 0x72,
|
||||
0x5F, 0x65, 0x78, 0x70, 0x5F, 0x62, 0x69, 0x61, 0x73, 0x00, 0x66, 0x6C,
|
||||
0x6F, 0x61, 0x74, 0x34, 0x00, 0xAB, 0xAB, 0xAB, 0x01, 0x00, 0x03, 0x00,
|
||||
0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x63,
|
||||
0x6F, 0x6C, 0x6F, 0x72, 0x5F, 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5F,
|
||||
0x6D, 0x61, 0x70, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x34, 0x00, 0xAB, 0xAB,
|
||||
0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0A, 0x00, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x74, 0x65, 0x73, 0x73, 0x65, 0x6C, 0x6C, 0x61, 0x74,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x66, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x5F, 0x72,
|
||||
0x61, 0x6E, 0x67, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x64, 0x65, 0x70, 0x74, 0x68, 0x5F, 0x72, 0x61, 0x6E, 0x67,
|
||||
0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x70,
|
||||
0x6F, 0x6C, 0x79, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5F, 0x66,
|
||||
0x72, 0x6F, 0x6E, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x70, 0x6F, 0x6C, 0x79, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65,
|
||||
0x74, 0x5F, 0x62, 0x61, 0x63, 0x6B, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64,
|
||||
0x72, 0x61, 0x6D, 0x5F, 0x72, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69,
|
||||
0x6F, 0x6E, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x6C, 0x6F, 0x67,
|
||||
0x32, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73,
|
||||
0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x72, 0x65, 0x66, 0x65, 0x72,
|
||||
0x65, 0x6E, 0x63, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x72, 0x65,
|
||||
0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x00, 0x78, 0x65, 0x5F, 0x65,
|
||||
0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E, 0x63, 0x69, 0x6C,
|
||||
0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65,
|
||||
0x6E, 0x63, 0x69, 0x6C, 0x5F, 0x66, 0x72, 0x6F, 0x6E, 0x74, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x65, 0x6E,
|
||||
0x63, 0x69, 0x6C, 0x5F, 0x62, 0x61, 0x63, 0x6B, 0x00, 0x78, 0x65, 0x5F,
|
||||
0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x5F, 0x64,
|
||||
0x77, 0x6F, 0x72, 0x64, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72,
|
||||
0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x66, 0x6C, 0x61, 0x67, 0x73, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F,
|
||||
0x70, 0x61, 0x63, 0x6B, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x6C,
|
||||
0x6F, 0x77, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F,
|
||||
0x72, 0x74, 0x5F, 0x70, 0x61, 0x63, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x73,
|
||||
0x65, 0x74, 0x5F, 0x6C, 0x6F, 0x77, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64,
|
||||
0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x70, 0x61, 0x63, 0x6B, 0x5F,
|
||||
0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x68, 0x69, 0x67, 0x68, 0x00, 0x78,
|
||||
0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x72, 0x74, 0x5F, 0x70,
|
||||
0x61, 0x63, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5F, 0x68,
|
||||
0x69, 0x67, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x5F, 0x72,
|
||||
0x74, 0x30, 0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x5F, 0x72,
|
||||
0x74, 0x32, 0x33, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D,
|
||||
0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F,
|
||||
0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61,
|
||||
0x6D, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65,
|
||||
0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72,
|
||||
0x61, 0x6D, 0x5F, 0x62, 0x6C, 0x65, 0x6E, 0x64, 0x5F, 0x72, 0x74, 0x30,
|
||||
0x31, 0x00, 0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62,
|
||||
0x6C, 0x65, 0x6E, 0x64, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x62, 0x6C, 0x65, 0x6E, 0x64,
|
||||
0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x69, 0x6E, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x69, 0x6E, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x72, 0x74, 0x32, 0x33, 0x00, 0x78, 0x65,
|
||||
0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F, 0x72, 0x65,
|
||||
0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x72, 0x74, 0x30, 0x31, 0x00,
|
||||
0x78, 0x65, 0x5F, 0x65, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x73, 0x74, 0x6F,
|
||||
0x72, 0x65, 0x5F, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x5F, 0x72, 0x74, 0x32,
|
||||
0x33, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20,
|
||||
0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61,
|
||||
0x64, 0x65, 0x72, 0x20, 0x43, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x65, 0x72,
|
||||
0x20, 0x31, 0x30, 0x2E, 0x31, 0x00, 0xAB, 0xAB, 0x49, 0x53, 0x47, 0x4E,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x4F, 0x53, 0x47, 0x4E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x50, 0x43, 0x53, 0x47, 0x8C, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x00, 0x00, 0x53, 0x56, 0x5F, 0x54,
|
||||
0x65, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x00, 0x53, 0x56,
|
||||
0x5F, 0x49, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x54, 0x65, 0x73, 0x73, 0x46,
|
||||
0x61, 0x63, 0x74, 0x6F, 0x72, 0x00, 0xAB, 0xAB, 0x53, 0x48, 0x45, 0x58,
|
||||
0x04, 0x01, 0x00, 0x00, 0x51, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00,
|
||||
0x71, 0x00, 0x00, 0x01, 0x93, 0x18, 0x00, 0x01, 0x94, 0x18, 0x00, 0x01,
|
||||
0x95, 0x10, 0x00, 0x01, 0x96, 0x08, 0x00, 0x01, 0x97, 0x18, 0x00, 0x01,
|
||||
0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07, 0x46, 0x8E, 0x30, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x01,
|
||||
0x99, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x02,
|
||||
0x00, 0x70, 0x01, 0x00, 0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04,
|
||||
0x12, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
|
||||
0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x13, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00,
|
||||
0x5B, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04, 0x12, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x70, 0x01, 0x00, 0x36, 0x00, 0x00, 0x08,
|
||||
0x12, 0x20, 0x90, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01, 0x73, 0x00, 0x00, 0x01,
|
||||
0x67, 0x00, 0x00, 0x04, 0x12, 0x20, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x14, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x07, 0x12, 0x20, 0x10, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
|
||||
0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
|
@ -0,0 +1,121 @@
|
|||
//
|
||||
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
|
||||
//
|
||||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer xe_system_cbuffer
|
||||
// {
|
||||
//
|
||||
// uint xe_flags; // Offset: 0 Size: 4 [unused]
|
||||
// uint xe_vertex_index_endian; // Offset: 4 Size: 4 [unused]
|
||||
// uint xe_vertex_base_index; // Offset: 8 Size: 4 [unused]
|
||||
// uint xe_pixel_pos_reg; // Offset: 12 Size: 4 [unused]
|
||||
// float3 xe_ndc_scale; // Offset: 16 Size: 12 [unused]
|
||||
// float xe_pixel_half_pixel_offset; // Offset: 28 Size: 4 [unused]
|
||||
// float3 xe_ndc_offset; // Offset: 32 Size: 12 [unused]
|
||||
// int xe_alpha_test; // Offset: 44 Size: 4 [unused]
|
||||
// float2 xe_point_size; // Offset: 48 Size: 8 [unused]
|
||||
// float2 xe_point_size_min_max; // Offset: 56 Size: 8 [unused]
|
||||
// float2 xe_point_screen_to_ndc; // Offset: 64 Size: 8 [unused]
|
||||
// uint2 xe_sample_count_log2; // Offset: 72 Size: 8 [unused]
|
||||
// float2 xe_alpha_test_range; // Offset: 80 Size: 8 [unused]
|
||||
// uint xe_edram_pitch_tiles; // Offset: 88 Size: 4 [unused]
|
||||
// uint xe_edram_depth_base_dwords; // Offset: 92 Size: 4 [unused]
|
||||
// float4 xe_color_exp_bias; // Offset: 96 Size: 16 [unused]
|
||||
// uint4 xe_color_output_map; // Offset: 112 Size: 16 [unused]
|
||||
// float2 xe_tessellation_factor_range;// Offset: 128 Size: 8
|
||||
// float2 xe_edram_depth_range; // Offset: 136 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_front; // Offset: 144 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_back; // Offset: 152 Size: 8 [unused]
|
||||
// uint xe_edram_resolution_scale_log2;// Offset: 160 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_reference; // Offset: 164 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_read_mask; // Offset: 168 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_write_mask; // Offset: 172 Size: 4 [unused]
|
||||
// uint4 xe_edram_stencil_front; // Offset: 176 Size: 16 [unused]
|
||||
// uint4 xe_edram_stencil_back; // Offset: 192 Size: 16 [unused]
|
||||
// uint4 xe_edram_base_dwords; // Offset: 208 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_flags; // Offset: 224 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_width_low; // Offset: 240 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_offset_low; // Offset: 256 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_width_high; // Offset: 272 Size: 16 [unused]
|
||||
// uint4 xe_edram_rt_pack_offset_high;// Offset: 288 Size: 16 [unused]
|
||||
// uint4 xe_edram_load_mask_rt01; // Offset: 304 Size: 16 [unused]
|
||||
// uint4 xe_edram_load_mask_rt23; // Offset: 320 Size: 16 [unused]
|
||||
// float4 xe_edram_load_scale_rt01; // Offset: 336 Size: 16 [unused]
|
||||
// float4 xe_edram_load_scale_rt23; // Offset: 352 Size: 16 [unused]
|
||||
// uint4 xe_edram_blend_rt01; // Offset: 368 Size: 16 [unused]
|
||||
// uint4 xe_edram_blend_rt23; // Offset: 384 Size: 16 [unused]
|
||||
// float4 xe_edram_blend_constant; // Offset: 400 Size: 16 [unused]
|
||||
// float4 xe_edram_store_min_rt01; // Offset: 416 Size: 16 [unused]
|
||||
// float4 xe_edram_store_min_rt23; // Offset: 432 Size: 16 [unused]
|
||||
// float4 xe_edram_store_max_rt01; // Offset: 448 Size: 16 [unused]
|
||||
// float4 xe_edram_store_max_rt23; // Offset: 464 Size: 16 [unused]
|
||||
// float4 xe_edram_store_scale_rt01; // Offset: 480 Size: 16 [unused]
|
||||
// float4 xe_edram_store_scale_rt23; // Offset: 496 Size: 16 [unused]
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// Resource Bindings:
|
||||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_system_cbuffer cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
// Patch Constant signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// SV_TessFactor 0 x 0 TRIEDGE float x
|
||||
// SV_TessFactor 1 x 1 TRIEDGE float x
|
||||
// SV_TessFactor 2 x 2 TRIEDGE float x
|
||||
// SV_InsideTessFactor 0 x 3 TRIINT float x
|
||||
//
|
||||
//
|
||||
// Input signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// no Input
|
||||
//
|
||||
// Output signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// no Output
|
||||
// Tessellation Domain # of control points
|
||||
// -------------------- --------------------
|
||||
// Triangle 3
|
||||
//
|
||||
// Tessellation Output Primitive Partitioning Type
|
||||
// ------------------------------ ------------------
|
||||
// Clockwise Triangles Integer
|
||||
//
|
||||
hs_5_1
|
||||
hs_decls
|
||||
dcl_input_control_point_count 3
|
||||
dcl_output_control_point_count 3
|
||||
dcl_tessellator_domain domain_tri
|
||||
dcl_tessellator_partitioning partitioning_integer
|
||||
dcl_tessellator_output_primitive output_triangle_cw
|
||||
dcl_globalFlags refactoringAllowed
|
||||
dcl_constantbuffer CB0[0:0][9], immediateIndexed, space=0
|
||||
hs_fork_phase
|
||||
dcl_hs_fork_phase_instance_count 3
|
||||
dcl_input vForkInstanceID
|
||||
dcl_output_siv o0.x, finalTriUeq0EdgeTessFactor
|
||||
dcl_output_siv o1.x, finalTriVeq0EdgeTessFactor
|
||||
dcl_output_siv o2.x, finalTriWeq0EdgeTessFactor
|
||||
dcl_temps 1
|
||||
dcl_indexrange o0.x 3
|
||||
mov r0.x, vForkInstanceID.x
|
||||
mov o[r0.x + 0].x, CB0[0][8].y
|
||||
ret
|
||||
hs_fork_phase
|
||||
dcl_output_siv o3.x, finalTriInsideTessFactor
|
||||
mov o3.x, CB0[0][8].y
|
||||
ret
|
||||
// Approximately 5 instruction slots used
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -18,19 +18,20 @@
|
|||
// float2 xe_point_size; // Offset: 48 Size: 8
|
||||
// float2 xe_point_size_min_max; // Offset: 56 Size: 8
|
||||
// float2 xe_point_screen_to_ndc; // Offset: 64 Size: 8
|
||||
// float2 xe_ssaa_inv_scale; // Offset: 72 Size: 8 [unused]
|
||||
// uint2 xe_sample_count_log2; // Offset: 72 Size: 8 [unused]
|
||||
// float2 xe_alpha_test_range; // Offset: 80 Size: 8 [unused]
|
||||
// uint xe_edram_pitch_tiles; // Offset: 88 Size: 4 [unused]
|
||||
// uint xe_edram_depth_base_dwords; // Offset: 92 Size: 4 [unused]
|
||||
// float4 xe_color_exp_bias; // Offset: 96 Size: 16 [unused]
|
||||
// uint4 xe_color_output_map; // Offset: 112 Size: 16 [unused]
|
||||
// float2 xe_edram_depth_range; // Offset: 128 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_front; // Offset: 136 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_back; // Offset: 144 Size: 8 [unused]
|
||||
// uint xe_edram_resolution_scale_log2;// Offset: 152 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_reference; // Offset: 156 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_read_mask; // Offset: 160 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_write_mask; // Offset: 164 Size: 4 [unused]
|
||||
// float2 xe_tessellation_factor_range;// Offset: 128 Size: 8 [unused]
|
||||
// float2 xe_edram_depth_range; // Offset: 136 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_front; // Offset: 144 Size: 8 [unused]
|
||||
// float2 xe_edram_poly_offset_back; // Offset: 152 Size: 8 [unused]
|
||||
// uint xe_edram_resolution_scale_log2;// Offset: 160 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_reference; // Offset: 164 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_read_mask; // Offset: 168 Size: 4 [unused]
|
||||
// uint xe_edram_stencil_write_mask; // Offset: 172 Size: 4 [unused]
|
||||
// uint4 xe_edram_stencil_front; // Offset: 176 Size: 16 [unused]
|
||||
// uint4 xe_edram_stencil_back; // Offset: 192 Size: 16 [unused]
|
||||
// uint4 xe_edram_base_dwords; // Offset: 208 Size: 16 [unused]
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,59 @@
|
|||
// generated from `xb buildhlsl`
|
||||
// source: tessellation_quad.vs.hlsl
|
||||
const uint8_t tessellation_quad_vs[] = {
|
||||
0x44, 0x58, 0x42, 0x43, 0x3E, 0xC0, 0x61, 0x45, 0x8D, 0x5B, 0x3E, 0x67,
|
||||
0x6A, 0xFD, 0xB3, 0x0C, 0x44, 0x43, 0xB1, 0x21, 0x01, 0x00, 0x00, 0x00,
|
||||
0x8C, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
|
||||
0xA0, 0x00, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00,
|
||||
0xF0, 0x01, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x64, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0xFE, 0xFF, 0x00, 0x05, 0x00, 0x00,
|
||||
0x3C, 0x00, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25, 0x3C, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
|
||||
0x24, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52,
|
||||
0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65,
|
||||
0x72, 0x20, 0x43, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x65, 0x72, 0x20, 0x31,
|
||||
0x30, 0x2E, 0x31, 0x00, 0x49, 0x53, 0x47, 0x4E, 0x2C, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x53, 0x56, 0x5F, 0x56,
|
||||
0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x44, 0x00, 0x4F, 0x53, 0x47, 0x4E,
|
||||
0x2C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
|
||||
0x53, 0x56, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00,
|
||||
0x53, 0x48, 0x45, 0x58, 0xE0, 0x00, 0x00, 0x00, 0x51, 0x00, 0x01, 0x00,
|
||||
0x38, 0x00, 0x00, 0x00, 0x6A, 0x08, 0x00, 0x01, 0x60, 0x00, 0x00, 0x04,
|
||||
0x12, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
|
||||
0x67, 0x00, 0x00, 0x04, 0xF2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00,
|
||||
0x55, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0A, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x22, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x0A, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x07, 0x22, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x05,
|
||||
0x32, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x08, 0xC2, 0x20, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F,
|
||||
0x3E, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00,
|
||||
0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
};
|
|
@ -0,0 +1,31 @@
|
|||
//
|
||||
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
|
||||
//
|
||||
//
|
||||
//
|
||||
// Input signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// SV_VertexID 0 x 0 VERTID uint x
|
||||
//
|
||||
//
|
||||
// Output signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// SV_Position 0 xyzw 0 POS float xyzw
|
||||
//
|
||||
vs_5_1
|
||||
dcl_globalFlags refactoringAllowed
|
||||
dcl_input_sgv v0.x, vertex_id
|
||||
dcl_output_siv o0.xyzw, position
|
||||
dcl_temps 1
|
||||
ushr r0.x, v0.x, l(1)
|
||||
mov r0.y, v0.x
|
||||
and r0.xy, r0.xyxx, l(1, 1, 0, 0)
|
||||
xor r0.y, r0.x, r0.y
|
||||
utof o0.xy, r0.xyxx
|
||||
mov o0.zw, l(0,0,0,1.000000)
|
||||
ret
|
||||
// Approximately 7 instruction slots used
|
Binary file not shown.
|
@ -0,0 +1,57 @@
|
|||
// generated from `xb buildhlsl`
|
||||
// source: tessellation_triangle.vs.hlsl
|
||||
const uint8_t tessellation_triangle_vs[] = {
|
||||
0x44, 0x58, 0x42, 0x43, 0xAA, 0x20, 0x3F, 0x15, 0x16, 0x27, 0xF3, 0x4C,
|
||||
0x40, 0xE3, 0x1C, 0x8D, 0xB3, 0x7B, 0x3D, 0x02, 0x01, 0x00, 0x00, 0x00,
|
||||
0x7C, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
|
||||
0xA0, 0x00, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00,
|
||||
0xE0, 0x01, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x64, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0xFE, 0xFF, 0x00, 0x05, 0x00, 0x00,
|
||||
0x3C, 0x00, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25, 0x3C, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
|
||||
0x24, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52,
|
||||
0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65,
|
||||
0x72, 0x20, 0x43, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x65, 0x72, 0x20, 0x31,
|
||||
0x30, 0x2E, 0x31, 0x00, 0x49, 0x53, 0x47, 0x4E, 0x2C, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x53, 0x56, 0x5F, 0x56,
|
||||
0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x44, 0x00, 0x4F, 0x53, 0x47, 0x4E,
|
||||
0x2C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
|
||||
0x53, 0x56, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00,
|
||||
0x53, 0x48, 0x45, 0x58, 0xD0, 0x00, 0x00, 0x00, 0x51, 0x00, 0x01, 0x00,
|
||||
0x34, 0x00, 0x00, 0x00, 0x6A, 0x08, 0x00, 0x01, 0x60, 0x00, 0x00, 0x04,
|
||||
0x12, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
|
||||
0x67, 0x00, 0x00, 0x04, 0xF2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00,
|
||||
0x4E, 0x00, 0x00, 0x08, 0x00, 0xD0, 0x00, 0x00, 0x12, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07,
|
||||
0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x0A, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x05, 0x32, 0x20, 0x10, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x36, 0x00, 0x00, 0x08, 0xC2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x3E, 0x00, 0x00, 0x01,
|
||||
0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
|
@ -0,0 +1,30 @@
|
|||
//
|
||||
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
|
||||
//
|
||||
//
|
||||
//
|
||||
// Input signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// SV_VertexID 0 x 0 VERTID uint x
|
||||
//
|
||||
//
|
||||
// Output signature:
|
||||
//
|
||||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// SV_Position 0 xyzw 0 POS float xyzw
|
||||
//
|
||||
vs_5_1
|
||||
dcl_globalFlags refactoringAllowed
|
||||
dcl_input_sgv v0.x, vertex_id
|
||||
dcl_output_siv o0.xyzw, position
|
||||
dcl_temps 1
|
||||
udiv null, r0.x, v0.x, l(3)
|
||||
ushr r0.y, r0.x, l(1)
|
||||
and r0.xy, r0.xyxx, l(1, 1, 0, 0)
|
||||
utof o0.xy, r0.xyxx
|
||||
mov o0.zw, l(0,0,0,1.000000)
|
||||
ret
|
||||
// Approximately 6 instruction slots used
|
|
@ -0,0 +1,5 @@
|
|||
float4 main(uint xe_vertex_id : SV_VertexID) : SV_Position {
|
||||
uint2 position = (xe_vertex_id >> uint2(1u, 0u)) & 1u;
|
||||
position.y ^= position.x;
|
||||
return float4(float2(position), 0.0, 1.0);
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
float4 main(uint xe_vertex_id : SV_VertexID) : SV_Position {
|
||||
uint vertex_id = xe_vertex_id % 3u;
|
||||
return float4(float2((vertex_id >> uint2(0u, 1u)) & 1u), 0.0, 1.0);
|
||||
}
|
|
@ -18,7 +18,7 @@ cbuffer xe_system_cbuffer : register(b0) {
|
|||
float2 xe_point_size_min_max;
|
||||
// vec4 4
|
||||
float2 xe_point_screen_to_ndc;
|
||||
float2 xe_ssaa_inv_scale;
|
||||
uint2 xe_sample_count_log2;
|
||||
// vec4 5
|
||||
float2 xe_alpha_test_range;
|
||||
uint xe_edram_pitch_tiles;
|
||||
|
@ -28,12 +28,13 @@ cbuffer xe_system_cbuffer : register(b0) {
|
|||
// vec4 7
|
||||
uint4 xe_color_output_map;
|
||||
// vec4 8
|
||||
float2 xe_tessellation_factor_range;
|
||||
float2 xe_edram_depth_range;
|
||||
float2 xe_edram_poly_offset_front;
|
||||
// vec4 9
|
||||
float2 xe_edram_poly_offset_front;
|
||||
float2 xe_edram_poly_offset_back;
|
||||
uint xe_edram_resolution_scale_log2;
|
||||
// vec4 10
|
||||
uint xe_edram_resolution_scale_log2;
|
||||
uint xe_edram_stencil_reference;
|
||||
uint xe_edram_stencil_read_mask;
|
||||
uint xe_edram_stencil_write_mask;
|
||||
|
|
|
@ -833,7 +833,7 @@ void DxbcShaderTranslator::StartVertexShader_LoadVertexIndex() {
|
|||
}
|
||||
}
|
||||
|
||||
void DxbcShaderTranslator::StartVertexShader() {
|
||||
void DxbcShaderTranslator::StartVertexOrDomainShader() {
|
||||
// Zero the interpolators.
|
||||
for (uint32_t i = 0; i < kInterpolatorCount; ++i) {
|
||||
shader_code_.push_back(ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_MOV) |
|
||||
|
@ -870,8 +870,157 @@ void DxbcShaderTranslator::StartVertexShader() {
|
|||
++stat_.instruction_count;
|
||||
++stat_.mov_instruction_count;
|
||||
|
||||
if (IsDXBCVertexShader()) {
|
||||
// Write the vertex index to GPR 0.
|
||||
StartVertexShader_LoadVertexIndex();
|
||||
} else if (IsDXBCDomainShader()) {
|
||||
uint32_t temp_register_operand_length = IndexableGPRsUsed() ? 3 : 2;
|
||||
|
||||
// Copy the domain location to r0.yz (for quad patches) or r0.xyz (for
|
||||
// triangle patches), and also set the domain in STAT.
|
||||
uint32_t domain_location_mask, domain_location_swizzle;
|
||||
if (vertex_shader_type_ == VertexShaderType::kTriangleDomain) {
|
||||
domain_location_mask = 0b0111;
|
||||
// ZYX swizzle with r1.y == 0, according to the water shader in
|
||||
// Banjo-Kazooie: Nuts & Bolts.
|
||||
domain_location_swizzle = 0b00000110;
|
||||
stat_.tessellator_domain = D3D11_SB_TESSELLATOR_DOMAIN_TRI;
|
||||
} else {
|
||||
assert_true(vertex_shader_type_ == VertexShaderType::kQuadDomain);
|
||||
// According to the ground shader in Viva Pinata, though it's impossible
|
||||
// (as of December 12th, 2018) to test there since it possibly requires
|
||||
// memexport for ground control points (the memory region with them is
|
||||
// filled with zeros).
|
||||
domain_location_mask = 0b0110;
|
||||
domain_location_swizzle = 0b00000100;
|
||||
stat_.tessellator_domain = D3D11_SB_TESSELLATOR_DOMAIN_QUAD;
|
||||
}
|
||||
shader_code_.push_back(ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_MOV) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(
|
||||
2 + temp_register_operand_length));
|
||||
if (IndexableGPRsUsed()) {
|
||||
shader_code_.push_back(EncodeVectorMaskedOperand(
|
||||
D3D10_SB_OPERAND_TYPE_INDEXABLE_TEMP, domain_location_mask, 2));
|
||||
shader_code_.push_back(0);
|
||||
} else {
|
||||
shader_code_.push_back(EncodeVectorMaskedOperand(
|
||||
D3D10_SB_OPERAND_TYPE_TEMP, domain_location_mask, 1));
|
||||
}
|
||||
shader_code_.push_back(0);
|
||||
shader_code_.push_back(EncodeVectorSwizzledOperand(
|
||||
D3D11_SB_OPERAND_TYPE_INPUT_DOMAIN_POINT, domain_location_swizzle, 0));
|
||||
++stat_.instruction_count;
|
||||
if (IndexableGPRsUsed()) {
|
||||
++stat_.array_instruction_count;
|
||||
} else {
|
||||
++stat_.mov_instruction_count;
|
||||
}
|
||||
|
||||
assert_true(register_count() >= 2);
|
||||
|
||||
// Copy the primitive index to r0.x (for quad patches) or r1.x (for
|
||||
// triangle patches) as a float.
|
||||
// When using indexable temps, copy through a r# because x# are apparently
|
||||
// only accessible via mov.
|
||||
// TODO(Triang3l): Investigate what should be written for primitives (or
|
||||
// even control points) for non-per-edge tessellation modes (they may
|
||||
// possibly have an index buffer).
|
||||
uint32_t primitive_id_gpr_index =
|
||||
vertex_shader_type_ == VertexShaderType::kTriangleDomain ? 1 : 0;
|
||||
|
||||
if (register_count() > primitive_id_gpr_index) {
|
||||
uint32_t primitive_id_temp =
|
||||
IndexableGPRsUsed() ? PushSystemTemp() : primitive_id_gpr_index;
|
||||
shader_code_.push_back(ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_UTOF) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(4));
|
||||
shader_code_.push_back(
|
||||
EncodeVectorMaskedOperand(D3D10_SB_OPERAND_TYPE_TEMP, 0b0001, 1));
|
||||
shader_code_.push_back(primitive_id_temp);
|
||||
shader_code_.push_back(
|
||||
EncodeScalarOperand(D3D10_SB_OPERAND_TYPE_INPUT_PRIMITIVEID, 0));
|
||||
++stat_.instruction_count;
|
||||
++stat_.conversion_instruction_count;
|
||||
if (IndexableGPRsUsed()) {
|
||||
shader_code_.push_back(
|
||||
ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_MOV) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(6));
|
||||
shader_code_.push_back(EncodeVectorMaskedOperand(
|
||||
D3D10_SB_OPERAND_TYPE_INDEXABLE_TEMP, 0b0001, 2));
|
||||
shader_code_.push_back(0);
|
||||
shader_code_.push_back(primitive_id_gpr_index);
|
||||
shader_code_.push_back(
|
||||
EncodeVectorSelectOperand(D3D10_SB_OPERAND_TYPE_TEMP, 0, 1));
|
||||
shader_code_.push_back(primitive_id_temp);
|
||||
++stat_.instruction_count;
|
||||
++stat_.array_instruction_count;
|
||||
// Release primitive_id_temp.
|
||||
PopSystemTemp();
|
||||
}
|
||||
}
|
||||
|
||||
if (register_count() >= 2) {
|
||||
// Write the swizzle of the barycentric/UV coordinates to r1.x (for quad
|
||||
// patches) or r1.y (for triangle patches). It appears that the
|
||||
// tessellator offloads the reordering of coordinates for edges to game
|
||||
// shaders.
|
||||
//
|
||||
// In Banjo-Kazooie: Nuts & Bolts (triangle patches with per-edge
|
||||
// factors), the shader multiplies the first control point's position by
|
||||
// r0.z, the second CP's by r0.y, and the third CP's by r0.x. But before
|
||||
// doing that it swizzles r0.xyz the following way depending on the value
|
||||
// in r1.y:
|
||||
// - ZXY for 1.0.
|
||||
// - YZX for 2.0.
|
||||
// - XZY for 4.0.
|
||||
// - YXZ for 5.0.
|
||||
// - ZYX for 6.0.
|
||||
// Possibly, the logic here is that the value itself is the amount of
|
||||
// rotation of the swizzle to the right, and 1 << 2 is set when the
|
||||
// swizzle needs to be flipped before rotating.
|
||||
//
|
||||
// In Viva Pinata (quad patches with per-edge factors - not possible to
|
||||
// test however as of December 12th, 2018), if we assume that r0.y is V
|
||||
// and r0.z is U, the factors each control point value is multiplied by
|
||||
// are the following:
|
||||
// - (1-v)*(1-u), v*(1-u), (1-v)*u, v*u for 0.0 (base swizzle).
|
||||
// - v*(1-u), (1-v)*(1-u), v*u, (1-v)*u for 1.0 (YXWZ).
|
||||
// - v*u, (1-v)*u, v*(1-u), (1-v)*(1-u) for 2.0 (WZYX).
|
||||
// - (1-v)*u, v*u, (1-v)*(1-u), v*(1-u) for 3.0 (ZWXY).
|
||||
// According to the control point order at
|
||||
// https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_tessellator.txt
|
||||
// the first is located at (0,0), the second at (0,1), the third at (1,0)
|
||||
// and the fourth at (1,1). So, swizzle index 0 appears to be the correct
|
||||
// one. But, this hasn't been tested yet.
|
||||
//
|
||||
// Direct3D 12 appears to be passing the coordinates in a consistent
|
||||
// order, so we can just use ZYX for triangle patches.
|
||||
uint32_t domain_location_swizzle_mask =
|
||||
vertex_shader_type_ == VertexShaderType::kTriangleDomain ? 0b0010
|
||||
: 0b0001;
|
||||
shader_code_.push_back(ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_MOV) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(
|
||||
3 + temp_register_operand_length));
|
||||
if (IndexableGPRsUsed()) {
|
||||
shader_code_.push_back(
|
||||
EncodeVectorMaskedOperand(D3D10_SB_OPERAND_TYPE_INDEXABLE_TEMP,
|
||||
domain_location_swizzle_mask, 2));
|
||||
shader_code_.push_back(0);
|
||||
} else {
|
||||
shader_code_.push_back(EncodeVectorMaskedOperand(
|
||||
D3D10_SB_OPERAND_TYPE_TEMP, domain_location_swizzle_mask, 1));
|
||||
}
|
||||
shader_code_.push_back(1);
|
||||
shader_code_.push_back(
|
||||
EncodeScalarOperand(D3D10_SB_OPERAND_TYPE_IMMEDIATE32, 0));
|
||||
shader_code_.push_back(0);
|
||||
++stat_.instruction_count;
|
||||
if (IndexableGPRsUsed()) {
|
||||
++stat_.array_instruction_count;
|
||||
} else {
|
||||
++stat_.mov_instruction_count;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DxbcShaderTranslator::StartPixelShader() {
|
||||
|
@ -918,19 +1067,7 @@ void DxbcShaderTranslator::StartPixelShader() {
|
|||
// Copy interpolants to GPRs.
|
||||
uint32_t interpolator_count = std::min(kInterpolatorCount, register_count());
|
||||
if (IndexableGPRsUsed()) {
|
||||
// Copy through r# to x0[#].
|
||||
uint32_t interpolator_temp_register = PushSystemTemp();
|
||||
for (uint32_t i = 0; i < interpolator_count; ++i) {
|
||||
shader_code_.push_back(ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_MOV) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(5));
|
||||
shader_code_.push_back(
|
||||
EncodeVectorMaskedOperand(D3D10_SB_OPERAND_TYPE_TEMP, 0b1111, 1));
|
||||
shader_code_.push_back(interpolator_temp_register);
|
||||
shader_code_.push_back(EncodeVectorSwizzledOperand(
|
||||
D3D10_SB_OPERAND_TYPE_INPUT, kSwizzleXYZW, 1));
|
||||
shader_code_.push_back(uint32_t(InOutRegister::kPSInInterpolators) + i);
|
||||
++stat_.instruction_count;
|
||||
++stat_.mov_instruction_count;
|
||||
shader_code_.push_back(ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_MOV) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(6));
|
||||
shader_code_.push_back(EncodeVectorMaskedOperand(
|
||||
|
@ -938,14 +1075,12 @@ void DxbcShaderTranslator::StartPixelShader() {
|
|||
shader_code_.push_back(0);
|
||||
shader_code_.push_back(i);
|
||||
shader_code_.push_back(EncodeVectorSwizzledOperand(
|
||||
D3D10_SB_OPERAND_TYPE_TEMP, kSwizzleXYZW, 1));
|
||||
shader_code_.push_back(interpolator_temp_register);
|
||||
D3D10_SB_OPERAND_TYPE_INPUT, kSwizzleXYZW, 1));
|
||||
shader_code_.push_back(uint32_t(InOutRegister::kPSInInterpolators) + i);
|
||||
++stat_.instruction_count;
|
||||
++stat_.array_instruction_count;
|
||||
}
|
||||
PopSystemTemp();
|
||||
} else {
|
||||
// Copy directly to r#.
|
||||
for (uint32_t i = 0; i < interpolator_count; ++i) {
|
||||
shader_code_.push_back(ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_MOV) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(5));
|
||||
|
@ -1204,7 +1339,7 @@ void DxbcShaderTranslator::StartPixelShader() {
|
|||
void DxbcShaderTranslator::StartTranslation() {
|
||||
// Allocate global system temporary registers that may also be used in the
|
||||
// epilogue.
|
||||
if (IsDXBCVertexShader()) {
|
||||
if (IsDXBCVertexOrDomainShader()) {
|
||||
system_temp_position_ = PushSystemTemp(true);
|
||||
} else if (IsDXBCPixelShader()) {
|
||||
if (!is_depth_only_pixel_shader_) {
|
||||
|
@ -1237,8 +1372,8 @@ void DxbcShaderTranslator::StartTranslation() {
|
|||
}
|
||||
|
||||
// Write stage-specific prologue.
|
||||
if (IsDXBCVertexShader()) {
|
||||
StartVertexShader();
|
||||
if (IsDXBCVertexOrDomainShader()) {
|
||||
StartVertexOrDomainShader();
|
||||
} else if (IsDXBCPixelShader()) {
|
||||
StartPixelShader();
|
||||
}
|
||||
|
@ -1282,7 +1417,7 @@ void DxbcShaderTranslator::StartTranslation() {
|
|||
}
|
||||
}
|
||||
|
||||
void DxbcShaderTranslator::CompleteVertexShader() {
|
||||
void DxbcShaderTranslator::CompleteVertexOrDomainShader() {
|
||||
// Get what we need to do with the position.
|
||||
uint32_t ndc_control_temp = PushSystemTemp();
|
||||
system_constants_used_ |= 1ull << kSysConst_Flags_Index;
|
||||
|
@ -6735,13 +6870,13 @@ void DxbcShaderTranslator::CompleteShaderCode() {
|
|||
}
|
||||
|
||||
// Write stage-specific epilogue.
|
||||
if (IsDXBCVertexShader()) {
|
||||
CompleteVertexShader();
|
||||
if (IsDXBCVertexOrDomainShader()) {
|
||||
CompleteVertexOrDomainShader();
|
||||
} else if (IsDXBCPixelShader()) {
|
||||
CompletePixelShader();
|
||||
}
|
||||
|
||||
if (IsDXBCVertexShader()) {
|
||||
if (IsDXBCVertexOrDomainShader()) {
|
||||
// Release system_temp_position_.
|
||||
PopSystemTemp();
|
||||
} else if (IsDXBCPixelShader()) {
|
||||
|
@ -6795,6 +6930,8 @@ std::vector<uint8_t> DxbcShaderTranslator::CompleteTranslation() {
|
|||
|
||||
shader_object_.clear();
|
||||
|
||||
uint32_t has_pcsg = IsDXBCDomainShader() ? 1 : 0;
|
||||
|
||||
// Write the shader object header.
|
||||
shader_object_.push_back('CBXD');
|
||||
// Checksum (set later).
|
||||
|
@ -6804,8 +6941,8 @@ std::vector<uint8_t> DxbcShaderTranslator::CompleteTranslation() {
|
|||
shader_object_.push_back(1);
|
||||
// Size (set later).
|
||||
shader_object_.push_back(0);
|
||||
// 5 chunks - RDEF, ISGN, OSGN, SHEX, STAT.
|
||||
shader_object_.push_back(5);
|
||||
// 5 or 6 chunks - RDEF, ISGN, optionally PCSG, OSGN, SHEX, STAT.
|
||||
shader_object_.push_back(5 + has_pcsg);
|
||||
// Chunk offsets (set later).
|
||||
for (uint32_t i = 0; i < shader_object_[7]; ++i) {
|
||||
shader_object_.push_back(0);
|
||||
|
@ -6833,9 +6970,21 @@ std::vector<uint8_t> DxbcShaderTranslator::CompleteTranslation() {
|
|||
(uint32_t(shader_object_.size()) - chunk_position_dwords - 2) *
|
||||
sizeof(uint32_t);
|
||||
|
||||
// Write Output SiGNature.
|
||||
// Write Patch Constant SiGnature.
|
||||
if (has_pcsg) {
|
||||
chunk_position_dwords = uint32_t(shader_object_.size());
|
||||
shader_object_[10] = chunk_position_dwords * sizeof(uint32_t);
|
||||
shader_object_.push_back('GSCP');
|
||||
shader_object_.push_back(0);
|
||||
WritePatchConstantSignature();
|
||||
shader_object_[chunk_position_dwords + 1] =
|
||||
(uint32_t(shader_object_.size()) - chunk_position_dwords - 2) *
|
||||
sizeof(uint32_t);
|
||||
}
|
||||
|
||||
// Write Output SiGNature.
|
||||
chunk_position_dwords = uint32_t(shader_object_.size());
|
||||
shader_object_[10 + has_pcsg] = chunk_position_dwords * sizeof(uint32_t);
|
||||
shader_object_.push_back('NGSO');
|
||||
shader_object_.push_back(0);
|
||||
WriteOutputSignature();
|
||||
|
@ -6845,7 +6994,7 @@ std::vector<uint8_t> DxbcShaderTranslator::CompleteTranslation() {
|
|||
|
||||
// Write SHader EXtended.
|
||||
chunk_position_dwords = uint32_t(shader_object_.size());
|
||||
shader_object_[11] = chunk_position_dwords * sizeof(uint32_t);
|
||||
shader_object_[11 + has_pcsg] = chunk_position_dwords * sizeof(uint32_t);
|
||||
shader_object_.push_back('XEHS');
|
||||
shader_object_.push_back(0);
|
||||
WriteShaderCode();
|
||||
|
@ -6855,7 +7004,7 @@ std::vector<uint8_t> DxbcShaderTranslator::CompleteTranslation() {
|
|||
|
||||
// Write STATistics.
|
||||
chunk_position_dwords = uint32_t(shader_object_.size());
|
||||
shader_object_[12] = chunk_position_dwords * sizeof(uint32_t);
|
||||
shader_object_[12 + has_pcsg] = chunk_position_dwords * sizeof(uint32_t);
|
||||
shader_object_.push_back('TATS');
|
||||
shader_object_.push_back(sizeof(stat_));
|
||||
shader_object_.resize(shader_object_.size() +
|
||||
|
@ -13313,15 +13462,16 @@ const DxbcShaderTranslator::SystemConstantRdef DxbcShaderTranslator::
|
|||
// vec4 7
|
||||
{"xe_color_output_map", RdefTypeIndex::kUint4, 112, 16},
|
||||
// vec4 8
|
||||
{"xe_edram_depth_range", RdefTypeIndex::kFloat2, 128, 8},
|
||||
{"xe_edram_poly_offset_front", RdefTypeIndex::kFloat2, 136, 8},
|
||||
{"xe_tessellation_factor_range", RdefTypeIndex::kFloat2, 128, 8},
|
||||
{"xe_edram_depth_range", RdefTypeIndex::kFloat2, 136, 8},
|
||||
// vec4 9
|
||||
{"xe_edram_poly_offset_back", RdefTypeIndex::kFloat2, 144, 8},
|
||||
{"xe_edram_resolution_scale_log2", RdefTypeIndex::kUint, 152, 4},
|
||||
{"xe_edram_poly_offset_front", RdefTypeIndex::kFloat2, 144, 8},
|
||||
{"xe_edram_poly_offset_back", RdefTypeIndex::kFloat2, 152, 8},
|
||||
// vec4 10
|
||||
{"xe_edram_stencil_reference", RdefTypeIndex::kUint, 160, 4},
|
||||
{"xe_edram_stencil_read_mask", RdefTypeIndex::kUint, 164, 4},
|
||||
{"xe_edram_stencil_write_mask", RdefTypeIndex::kUint, 168, 4},
|
||||
{"xe_edram_resolution_scale_log2", RdefTypeIndex::kUint, 160, 4},
|
||||
{"xe_edram_stencil_reference", RdefTypeIndex::kUint, 164, 4},
|
||||
{"xe_edram_stencil_read_mask", RdefTypeIndex::kUint, 168, 4},
|
||||
{"xe_edram_stencil_write_mask", RdefTypeIndex::kUint, 172, 4},
|
||||
// vec4 11
|
||||
{"xe_edram_stencil_front", RdefTypeIndex::kUint4, 176, 16},
|
||||
// vec4 12
|
||||
|
@ -13409,6 +13559,9 @@ void DxbcShaderTranslator::WriteResourceDefinitions() {
|
|||
if (IsDXBCVertexShader()) {
|
||||
// vs_5_1
|
||||
shader_object_.push_back(0xFFFE0501u);
|
||||
} else if (IsDXBCDomainShader()) {
|
||||
// ds_5_1
|
||||
shader_object_.push_back(0x44530501u);
|
||||
} else {
|
||||
assert_true(IsDXBCPixelShader());
|
||||
// ps_5_1
|
||||
|
@ -13901,6 +14054,11 @@ void DxbcShaderTranslator::WriteInputSignature() {
|
|||
|
||||
// Vertex index semantic name.
|
||||
AppendString(shader_object_, "SV_VertexID");
|
||||
} else if (IsDXBCDomainShader()) {
|
||||
// No inputs - tessellation factors specified in PCSG.
|
||||
shader_object_.push_back(0);
|
||||
// Unknown.
|
||||
shader_object_.push_back(8);
|
||||
} else {
|
||||
assert_true(IsDXBCPixelShader());
|
||||
// Interpolators, point parameters (coordinates, size), clip space ZW,
|
||||
|
@ -13983,13 +14141,11 @@ void DxbcShaderTranslator::WriteInputSignature() {
|
|||
shader_object_[texcoord_name_position_dwords] = new_offset;
|
||||
}
|
||||
new_offset += AppendString(shader_object_, "TEXCOORD");
|
||||
|
||||
uint32_t position_name_position_dwords =
|
||||
chunk_position_dwords + signature_position_dwords +
|
||||
(kInterpolatorCount + 2) * signature_size_dwords;
|
||||
shader_object_[position_name_position_dwords] = new_offset;
|
||||
new_offset += AppendString(shader_object_, "SV_Position");
|
||||
|
||||
uint32_t front_face_name_position_dwords =
|
||||
position_name_position_dwords + signature_size_dwords;
|
||||
shader_object_[front_face_name_position_dwords] = new_offset;
|
||||
|
@ -13997,6 +14153,83 @@ void DxbcShaderTranslator::WriteInputSignature() {
|
|||
}
|
||||
}
|
||||
|
||||
void DxbcShaderTranslator::WritePatchConstantSignature() {
|
||||
assert_true(IsDXBCDomainShader());
|
||||
|
||||
uint32_t chunk_position_dwords = uint32_t(shader_object_.size());
|
||||
|
||||
const uint32_t signature_position_dwords = 2;
|
||||
const uint32_t signature_size_dwords = 6;
|
||||
|
||||
// FXC refuses to compile without SV_TessFactor and SV_InsideTessFactor input,
|
||||
// so this is required.
|
||||
uint32_t tess_factor_count_edge, tess_factor_count_inside;
|
||||
if (vertex_shader_type_ == VertexShaderType::kTriangleDomain) {
|
||||
tess_factor_count_edge = 3;
|
||||
tess_factor_count_inside = 1;
|
||||
} else {
|
||||
assert_true(vertex_shader_type_ == VertexShaderType::kQuadDomain);
|
||||
tess_factor_count_edge = 4;
|
||||
tess_factor_count_inside = 2;
|
||||
}
|
||||
uint32_t tess_factor_count_total =
|
||||
tess_factor_count_edge + tess_factor_count_inside;
|
||||
shader_object_.push_back(tess_factor_count_total);
|
||||
// Unknown.
|
||||
shader_object_.push_back(8);
|
||||
|
||||
for (uint32_t i = 0; i < tess_factor_count_total; ++i) {
|
||||
// Reserve space for the semantic name (SV_TessFactor or
|
||||
// SV_InsideTessFactor).
|
||||
shader_object_.push_back(0);
|
||||
shader_object_.push_back(
|
||||
i < tess_factor_count_edge ? i : (i - tess_factor_count_edge));
|
||||
if (vertex_shader_type_ == VertexShaderType::kTriangleDomain) {
|
||||
if (i < tess_factor_count_edge) {
|
||||
// D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR.
|
||||
shader_object_.push_back(13);
|
||||
} else {
|
||||
// D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR.
|
||||
shader_object_.push_back(14);
|
||||
}
|
||||
} else {
|
||||
assert_true(vertex_shader_type_ == VertexShaderType::kQuadDomain);
|
||||
if (i < tess_factor_count_edge) {
|
||||
// D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR.
|
||||
shader_object_.push_back(11);
|
||||
} else {
|
||||
// D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR.
|
||||
shader_object_.push_back(12);
|
||||
}
|
||||
}
|
||||
// D3D_REGISTER_COMPONENT_FLOAT32.
|
||||
shader_object_.push_back(3);
|
||||
// Not using any of these, and just assigning consecutive registers.
|
||||
shader_object_.push_back(i);
|
||||
// 1 component, none used.
|
||||
shader_object_.push_back(1);
|
||||
}
|
||||
|
||||
// Write the semantic names.
|
||||
uint32_t new_offset =
|
||||
(uint32_t(shader_object_.size()) - chunk_position_dwords) *
|
||||
sizeof(uint32_t);
|
||||
for (uint32_t i = 0; i < tess_factor_count_edge; ++i) {
|
||||
uint32_t name_position_dwords = chunk_position_dwords +
|
||||
signature_position_dwords +
|
||||
i * signature_size_dwords;
|
||||
shader_object_[name_position_dwords] = new_offset;
|
||||
}
|
||||
new_offset += AppendString(shader_object_, "SV_TessFactor");
|
||||
for (uint32_t i = 0; i < tess_factor_count_inside; ++i) {
|
||||
uint32_t name_position_dwords =
|
||||
chunk_position_dwords + signature_position_dwords +
|
||||
(tess_factor_count_edge + i) * signature_size_dwords;
|
||||
shader_object_[name_position_dwords] = new_offset;
|
||||
}
|
||||
new_offset += AppendString(shader_object_, "SV_InsideTessFactor");
|
||||
}
|
||||
|
||||
void DxbcShaderTranslator::WriteOutputSignature() {
|
||||
uint32_t chunk_position_dwords = uint32_t(shader_object_.size());
|
||||
uint32_t new_offset;
|
||||
|
@ -14004,7 +14237,7 @@ void DxbcShaderTranslator::WriteOutputSignature() {
|
|||
const uint32_t signature_position_dwords = 2;
|
||||
const uint32_t signature_size_dwords = 6;
|
||||
|
||||
if (IsDXBCVertexShader()) {
|
||||
if (IsDXBCVertexOrDomainShader()) {
|
||||
// Interpolators, point parameters (coordinates, size), clip space ZW,
|
||||
// screen position.
|
||||
shader_object_.push_back(kInterpolatorCount + 3);
|
||||
|
@ -14137,9 +14370,17 @@ void DxbcShaderTranslator::WriteOutputSignature() {
|
|||
void DxbcShaderTranslator::WriteShaderCode() {
|
||||
uint32_t chunk_position_dwords = uint32_t(shader_object_.size());
|
||||
|
||||
shader_object_.push_back(ENCODE_D3D10_SB_TOKENIZED_PROGRAM_VERSION_TOKEN(
|
||||
IsDXBCVertexShader() ? D3D10_SB_VERTEX_SHADER : D3D10_SB_PIXEL_SHADER, 5,
|
||||
1));
|
||||
uint32_t shader_type;
|
||||
if (IsDXBCVertexShader()) {
|
||||
shader_type = D3D10_SB_VERTEX_SHADER;
|
||||
} else if (IsDXBCDomainShader()) {
|
||||
shader_type = D3D11_SB_DOMAIN_SHADER;
|
||||
} else {
|
||||
assert_true(IsDXBCPixelShader());
|
||||
shader_type = D3D10_SB_PIXEL_SHADER;
|
||||
}
|
||||
shader_object_.push_back(
|
||||
ENCODE_D3D10_SB_TOKENIZED_PROGRAM_VERSION_TOKEN(shader_type, 5, 1));
|
||||
// Reserve space for the length token.
|
||||
shader_object_.push_back(0);
|
||||
|
||||
|
@ -14155,6 +14396,31 @@ void DxbcShaderTranslator::WriteShaderCode() {
|
|||
// Inputs/outputs have 1D-indexed operands with a component mask and a
|
||||
// register index.
|
||||
|
||||
if (IsDXBCDomainShader()) {
|
||||
// Not using control point data since Xenos only has a vertex shader acting
|
||||
// as both vertex shader and domain shader.
|
||||
uint32_t control_point_count;
|
||||
D3D11_SB_TESSELLATOR_DOMAIN domain;
|
||||
if (vertex_shader_type_ == VertexShaderType::kTriangleDomain) {
|
||||
control_point_count = 3;
|
||||
domain = D3D11_SB_TESSELLATOR_DOMAIN_TRI;
|
||||
} else {
|
||||
assert_true(vertex_shader_type_ == VertexShaderType::kQuadDomain);
|
||||
control_point_count = 4;
|
||||
domain = D3D11_SB_TESSELLATOR_DOMAIN_QUAD;
|
||||
}
|
||||
shader_object_.push_back(
|
||||
ENCODE_D3D10_SB_OPCODE_TYPE(
|
||||
D3D11_SB_OPCODE_DCL_INPUT_CONTROL_POINT_COUNT) |
|
||||
ENCODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(control_point_count) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(1));
|
||||
stat_.c_control_points = control_point_count;
|
||||
shader_object_.push_back(
|
||||
ENCODE_D3D10_SB_OPCODE_TYPE(D3D11_SB_OPCODE_DCL_TESS_DOMAIN) |
|
||||
ENCODE_D3D11_SB_TESS_DOMAIN(domain) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(1));
|
||||
}
|
||||
|
||||
// Don't allow refactoring when converting to native code to maintain position
|
||||
// invariance (needed even in pixel shaders for oDepth invariance).
|
||||
shader_object_.push_back(
|
||||
|
@ -14312,7 +14578,30 @@ void DxbcShaderTranslator::WriteShaderCode() {
|
|||
}
|
||||
|
||||
// Inputs and outputs.
|
||||
if (IsDXBCVertexShader()) {
|
||||
if (IsDXBCVertexOrDomainShader()) {
|
||||
if (IsDXBCDomainShader()) {
|
||||
// Domain location input (barycentric for triangles, UV for quads).
|
||||
uint32_t domain_location_mask;
|
||||
if (vertex_shader_type_ == VertexShaderType::kTriangleDomain) {
|
||||
domain_location_mask = 0b0111;
|
||||
} else {
|
||||
assert_true(vertex_shader_type_ == VertexShaderType::kQuadDomain);
|
||||
domain_location_mask = 0b0011;
|
||||
}
|
||||
shader_object_.push_back(
|
||||
ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_DCL_INPUT) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(2));
|
||||
shader_object_.push_back(EncodeVectorMaskedOperand(
|
||||
D3D11_SB_OPERAND_TYPE_INPUT_DOMAIN_POINT, domain_location_mask, 0));
|
||||
++stat_.dcl_count;
|
||||
// Primitive index input.
|
||||
shader_object_.push_back(
|
||||
ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_DCL_INPUT) |
|
||||
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(2));
|
||||
shader_object_.push_back(
|
||||
EncodeScalarOperand(D3D10_SB_OPERAND_TYPE_INPUT_PRIMITIVEID, 0));
|
||||
++stat_.dcl_count;
|
||||
} else {
|
||||
// Unswapped vertex index input (only X component).
|
||||
shader_object_.push_back(
|
||||
ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_DCL_INPUT_SGV) |
|
||||
|
@ -14322,6 +14611,7 @@ void DxbcShaderTranslator::WriteShaderCode() {
|
|||
shader_object_.push_back(uint32_t(InOutRegister::kVSInVertexIndex));
|
||||
shader_object_.push_back(ENCODE_D3D10_SB_NAME(D3D10_SB_NAME_VERTEX_ID));
|
||||
++stat_.dcl_count;
|
||||
}
|
||||
// Interpolator output.
|
||||
for (uint32_t i = 0; i < kInterpolatorCount; ++i) {
|
||||
shader_object_.push_back(
|
||||
|
|
|
@ -27,6 +27,13 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
DxbcShaderTranslator(uint32_t vendor_id, bool edram_rov_used);
|
||||
~DxbcShaderTranslator() override;
|
||||
|
||||
enum class VertexShaderType { kVertex, kTriangleDomain, kQuadDomain };
|
||||
// Sets the type (shader model and input layout) of the next vertex shader
|
||||
// that will be converted.
|
||||
void SetVertexShaderType(VertexShaderType type) {
|
||||
vertex_shader_type_ = type;
|
||||
}
|
||||
|
||||
// Constant buffer bindings in space 0.
|
||||
enum class CbufferRegister {
|
||||
kSystemConstants,
|
||||
|
@ -301,6 +308,13 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
uint32_t color_output_map[4];
|
||||
|
||||
// vec4 8
|
||||
union {
|
||||
struct {
|
||||
float tessellation_factor_range_min;
|
||||
float tessellation_factor_range_max;
|
||||
};
|
||||
float tessellation_factor_range[2];
|
||||
};
|
||||
union {
|
||||
struct {
|
||||
float edram_depth_range_scale;
|
||||
|
@ -308,6 +322,8 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
};
|
||||
float edram_depth_range[2];
|
||||
};
|
||||
|
||||
// vec4 9
|
||||
union {
|
||||
struct {
|
||||
float edram_poly_offset_front_scale;
|
||||
|
@ -315,8 +331,6 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
};
|
||||
float edram_poly_offset_front[2];
|
||||
};
|
||||
|
||||
// vec4 9
|
||||
union {
|
||||
struct {
|
||||
float edram_poly_offset_back_scale;
|
||||
|
@ -324,14 +338,12 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
};
|
||||
float edram_poly_offset_back[2];
|
||||
};
|
||||
uint32_t edram_resolution_scale_log2;
|
||||
uint32_t padding_9;
|
||||
|
||||
// vec4 10
|
||||
uint32_t edram_resolution_scale_log2;
|
||||
uint32_t edram_stencil_reference;
|
||||
uint32_t edram_stencil_read_mask;
|
||||
uint32_t edram_stencil_write_mask;
|
||||
uint32_t padding_10;
|
||||
|
||||
// vec4 11
|
||||
union {
|
||||
|
@ -563,38 +575,45 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
kSysConst_ColorOutputMap_Index = kSysConst_ColorExpBias_Index + 1,
|
||||
kSysConst_ColorOutputMap_Vec = kSysConst_ColorExpBias_Vec + 1,
|
||||
|
||||
kSysConst_EDRAMDepthRange_Index = kSysConst_ColorOutputMap_Index + 1,
|
||||
kSysConst_EDRAMDepthRange_Vec = kSysConst_ColorOutputMap_Vec + 1,
|
||||
kSysConst_EDRAMDepthRangeScale_Comp = 0,
|
||||
kSysConst_EDRAMDepthRangeOffset_Comp = 1,
|
||||
kSysConst_EDRAMPolyOffsetFront_Index = kSysConst_EDRAMDepthRange_Index + 1,
|
||||
kSysConst_EDRAMPolyOffsetFront_Vec = kSysConst_EDRAMDepthRange_Vec,
|
||||
kSysConst_EDRAMPolyOffsetFrontScale_Comp = 2,
|
||||
kSysConst_EDRAMPolyOffsetFrontOffset_Comp = 3,
|
||||
kSysConst_TessellationFactorRange_Index =
|
||||
kSysConst_ColorOutputMap_Index + 1,
|
||||
kSysConst_TessellationFactorRange_Vec = kSysConst_ColorOutputMap_Vec + 1,
|
||||
kSysConst_TessellationFactorRange_Comp = 0,
|
||||
kSysConst_EDRAMDepthRange_Index =
|
||||
kSysConst_TessellationFactorRange_Index + 1,
|
||||
kSysConst_EDRAMDepthRange_Vec = kSysConst_TessellationFactorRange_Vec,
|
||||
kSysConst_EDRAMDepthRangeScale_Comp = 2,
|
||||
kSysConst_EDRAMDepthRangeOffset_Comp = 3,
|
||||
|
||||
kSysConst_EDRAMPolyOffsetFront_Index = kSysConst_EDRAMDepthRange_Index + 1,
|
||||
kSysConst_EDRAMPolyOffsetFront_Vec = kSysConst_EDRAMDepthRange_Vec + 1,
|
||||
kSysConst_EDRAMPolyOffsetFrontScale_Comp = 0,
|
||||
kSysConst_EDRAMPolyOffsetFrontOffset_Comp = 1,
|
||||
kSysConst_EDRAMPolyOffsetBack_Index =
|
||||
kSysConst_EDRAMPolyOffsetFront_Index + 1,
|
||||
kSysConst_EDRAMPolyOffsetBack_Vec = kSysConst_EDRAMPolyOffsetFront_Vec + 1,
|
||||
kSysConst_EDRAMPolyOffsetBackScale_Comp = 0,
|
||||
kSysConst_EDRAMPolyOffsetBackOffset_Comp = 1,
|
||||
kSysConst_EDRAMPolyOffsetBack_Vec = kSysConst_EDRAMPolyOffsetFront_Vec,
|
||||
kSysConst_EDRAMPolyOffsetBackScale_Comp = 2,
|
||||
kSysConst_EDRAMPolyOffsetBackOffset_Comp = 3,
|
||||
|
||||
kSysConst_EDRAMResolutionScaleLog2_Index =
|
||||
kSysConst_EDRAMPolyOffsetBack_Index + 1,
|
||||
kSysConst_EDRAMResolutionScaleLog2_Vec = kSysConst_EDRAMPolyOffsetBack_Vec,
|
||||
kSysConst_EDRAMResolutionScaleLog2_Comp = 2,
|
||||
|
||||
kSysConst_EDRAMResolutionScaleLog2_Vec =
|
||||
kSysConst_EDRAMPolyOffsetBack_Vec + 1,
|
||||
kSysConst_EDRAMResolutionScaleLog2_Comp = 0,
|
||||
kSysConst_EDRAMStencilReference_Index =
|
||||
kSysConst_EDRAMResolutionScaleLog2_Index + 1,
|
||||
kSysConst_EDRAMStencilReference_Vec =
|
||||
kSysConst_EDRAMResolutionScaleLog2_Vec + 1,
|
||||
kSysConst_EDRAMStencilReference_Comp = 0,
|
||||
kSysConst_EDRAMResolutionScaleLog2_Vec,
|
||||
kSysConst_EDRAMStencilReference_Comp = 1,
|
||||
kSysConst_EDRAMStencilReadMask_Index =
|
||||
kSysConst_EDRAMStencilReference_Index + 1,
|
||||
kSysConst_EDRAMStencilReadMask_Vec = kSysConst_EDRAMStencilReference_Vec,
|
||||
kSysConst_EDRAMStencilReadMask_Comp = 1,
|
||||
kSysConst_EDRAMStencilReadMask_Vec = kSysConst_EDRAMResolutionScaleLog2_Vec,
|
||||
kSysConst_EDRAMStencilReadMask_Comp = 2,
|
||||
kSysConst_EDRAMStencilWriteMask_Index =
|
||||
kSysConst_EDRAMStencilReadMask_Index + 1,
|
||||
kSysConst_EDRAMStencilWriteMask_Vec = kSysConst_EDRAMStencilReference_Vec,
|
||||
kSysConst_EDRAMStencilWriteMask_Comp = 2,
|
||||
kSysConst_EDRAMStencilWriteMask_Vec =
|
||||
kSysConst_EDRAMResolutionScaleLog2_Vec,
|
||||
kSysConst_EDRAMStencilWriteMask_Comp = 3,
|
||||
|
||||
kSysConst_EDRAMStencilFront_Index =
|
||||
kSysConst_EDRAMStencilWriteMask_Index + 1,
|
||||
|
@ -757,9 +776,18 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
|
||||
// Use these instead of is_vertex_shader/is_pixel_shader because they don't
|
||||
// take is_depth_only_pixel_shader_ into account.
|
||||
inline bool IsDXBCVertexShader() const {
|
||||
inline bool IsDXBCVertexOrDomainShader() const {
|
||||
return !is_depth_only_pixel_shader_ && is_vertex_shader();
|
||||
}
|
||||
inline bool IsDXBCVertexShader() const {
|
||||
return IsDXBCVertexOrDomainShader() &&
|
||||
vertex_shader_type_ == VertexShaderType::kVertex;
|
||||
}
|
||||
inline bool IsDXBCDomainShader() const {
|
||||
return IsDXBCVertexOrDomainShader() &&
|
||||
(vertex_shader_type_ == VertexShaderType::kTriangleDomain ||
|
||||
vertex_shader_type_ == VertexShaderType::kQuadDomain);
|
||||
}
|
||||
inline bool IsDXBCPixelShader() const {
|
||||
return is_depth_only_pixel_shader_ || is_pixel_shader();
|
||||
}
|
||||
|
@ -778,11 +806,12 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
|
||||
// Writing the prologue.
|
||||
void StartVertexShader_LoadVertexIndex();
|
||||
void StartVertexShader();
|
||||
void StartVertexOrDomainShader();
|
||||
void StartDomainShader();
|
||||
void StartPixelShader();
|
||||
|
||||
// Writing the epilogue.
|
||||
void CompleteVertexShader();
|
||||
void CompleteVertexOrDomainShader();
|
||||
// Converts four depth values to 24-bit unorm or float, depending on the flag
|
||||
// value.
|
||||
void CompletePixelShader_DepthTo24Bit(uint32_t depths_temp);
|
||||
|
@ -991,6 +1020,7 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
|
||||
void WriteResourceDefinitions();
|
||||
void WriteInputSignature();
|
||||
void WritePatchConstantSignature();
|
||||
void WriteOutputSignature();
|
||||
void WriteShaderCode();
|
||||
|
||||
|
@ -1009,6 +1039,7 @@ class DxbcShaderTranslator : public ShaderTranslator {
|
|||
// Whether the output merger should be emulated in pixel shaders.
|
||||
bool edram_rov_used_;
|
||||
|
||||
VertexShaderType vertex_shader_type_ = VertexShaderType::kVertex;
|
||||
// Is currently writing the empty depth-only pixel shader, for
|
||||
// CompleteTranslation.
|
||||
bool is_depth_only_pixel_shader_;
|
||||
|
|
|
@ -555,11 +555,9 @@ VkShaderModule PipelineCache::GetGeometryShader(PrimitiveType primitive_type,
|
|||
// TODO(benvanik): quad strip geometry shader.
|
||||
assert_always("Quad strips not implemented");
|
||||
return nullptr;
|
||||
case PrimitiveType::k2DCopyRectListV0:
|
||||
case PrimitiveType::k2DCopyRectListV1:
|
||||
case PrimitiveType::k2DCopyRectListV2:
|
||||
case PrimitiveType::k2DCopyRectListV3:
|
||||
// TODO(DrChat): Research this.
|
||||
case PrimitiveType::kTrianglePatch:
|
||||
case PrimitiveType::kQuadPatch:
|
||||
assert_always("Tessellation is not implemented");
|
||||
return nullptr;
|
||||
default:
|
||||
assert_unhandled_case(primitive_type);
|
||||
|
|
|
@ -36,15 +36,25 @@ enum class PrimitiveType : uint32_t {
|
|||
kQuadList = 0x0D,
|
||||
kQuadStrip = 0x0E,
|
||||
kPolygon = 0x0F,
|
||||
k2DCopyRectListV0 = 0x10,
|
||||
k2DCopyRectListV1 = 0x11,
|
||||
k2DCopyRectListV2 = 0x12,
|
||||
k2DCopyRectListV3 = 0x13,
|
||||
// These are from Adreno 2xx, and also exist on R600, but on Xenos, these
|
||||
// don't exist or have different values (
|
||||
// k2DCopyRectListV0 = 0x10,
|
||||
// k2DCopyRectListV1 = 0x11,
|
||||
// k2DCopyRectListV2 = 0x12,
|
||||
// k2DCopyRectListV3 = 0x13,
|
||||
kTrianglePatch = 0x11,
|
||||
kQuadPatch = 0x12,
|
||||
k2DFillRectList = 0x14,
|
||||
k2DLineStrip = 0x15,
|
||||
k2DTriStrip = 0x16,
|
||||
};
|
||||
|
||||
enum class TessellationMode : uint32_t {
|
||||
kDiscrete = 0,
|
||||
kContinuous = 1,
|
||||
kPerEdge = 2,
|
||||
};
|
||||
|
||||
enum class Dimension : uint32_t {
|
||||
k1D = 0,
|
||||
k2D = 1,
|
||||
|
|
|
@ -758,7 +758,7 @@ class BuildHlslCommand(Command):
|
|||
help_short='Generates Direct3D shader binaries and header files.',
|
||||
help_long='''
|
||||
Generates the .cso/.h binaries under src/xenia/*/d3d12/shaders/dxbc/.
|
||||
Run after modifying any .vs.hlsl/.ps.hlsl/.gs.hlsl/.cs.hlsl files.
|
||||
Run after modifying any .hs/vs/ds/gs/ps/cs.hlsl files.
|
||||
''',
|
||||
*args, **kwargs)
|
||||
|
||||
|
@ -781,9 +781,11 @@ class BuildHlslCommand(Command):
|
|||
src_files = [os.path.join(root, name)
|
||||
for root, dirs, files in os.walk('src')
|
||||
for name in files
|
||||
if (name.endswith('.vs.hlsl') or
|
||||
name.endswith('.ps.hlsl') or
|
||||
if (name.endswith('.hs.hlsl') or
|
||||
name.endswith('.vs.hlsl') or
|
||||
name.endswith('.ds.hlsl') or
|
||||
name.endswith('.gs.hlsl') or
|
||||
name.endswith('.ps.hlsl') or
|
||||
name.endswith('.cs.hlsl'))]
|
||||
|
||||
# TODO(Triang3l): Handle any_errors.
|
||||
|
|
Loading…
Reference in New Issue