diff --git a/src/xenia/gpu/d3d12/d3d12_command_processor.cc b/src/xenia/gpu/d3d12/d3d12_command_processor.cc index b7800e1c8..b5e0edce8 100644 --- a/src/xenia/gpu/d3d12/d3d12_command_processor.cc +++ b/src/xenia/gpu/d3d12/d3d12_command_processor.cc @@ -2203,7 +2203,6 @@ bool D3D12CommandProcessor::IssueDraw(xenos::PrimitiveType primitive_type, if (host_render_targets_used) { bound_depth_and_color_render_target_bits = render_target_cache_->GetLastUpdateBoundRenderTargets( - render_target_cache_->gamma_render_target_as_srgb(), bound_depth_and_color_render_target_formats); } else { bound_depth_and_color_render_target_bits = 0; @@ -2496,8 +2495,7 @@ bool D3D12CommandProcessor::IssueDraw(xenos::PrimitiveType primitive_type, // Invalidate textures in memexported memory and watch for changes. for (const draw_util::MemExportRange& memexport_range : memexport_ranges_) { shared_memory_->RangeWrittenByGpu( - memexport_range.base_address_dwords << 2, memexport_range.size_bytes, - false); + memexport_range.base_address_dwords << 2, memexport_range.size_bytes); } if (cvars::d3d12_readback_memexport) { // Read the exported data on the CPU. @@ -3168,7 +3166,8 @@ void D3D12CommandProcessor::UpdateSystemConstantValues( flags |= uint32_t(alpha_test_function) << DxbcShaderTranslator::kSysFlag_AlphaPassIfLess_Shift; // Gamma writing. - if (!render_target_cache_->gamma_render_target_as_srgb()) { + if (!(edram_rov_used || + render_target_cache_->gamma_render_target_as_unorm16())) { for (uint32_t i = 0; i < 4; ++i) { if (color_infos[i].color_format == xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA) { @@ -3309,9 +3308,7 @@ void D3D12CommandProcessor::UpdateSystemConstantValues( } // Texture signedness / gamma. - bool gamma_render_target_as_srgb = - render_target_cache_->gamma_render_target_as_srgb(); - uint32_t textures_resolved = 0; + uint32_t textures_resolution_scaled = 0; uint32_t textures_remaining = used_texture_mask; uint32_t texture_index; while (xe::bit_scan_forward(textures_remaining, &texture_index)) { @@ -3327,12 +3324,13 @@ void D3D12CommandProcessor::UpdateSystemConstantValues( dirty |= (texture_signs_uint & texture_signs_mask) != texture_signs_shifted; texture_signs_uint = (texture_signs_uint & ~texture_signs_mask) | texture_signs_shifted; - textures_resolved |= - uint32_t(texture_cache_->IsActiveTextureResolved(texture_index)) + textures_resolution_scaled |= + uint32_t(texture_cache_->IsActiveTextureResolutionScaled(texture_index)) << texture_index; } - dirty |= system_constants_.textures_resolved != textures_resolved; - system_constants_.textures_resolved = textures_resolved; + dirty |= system_constants_.textures_resolution_scaled != + textures_resolution_scaled; + system_constants_.textures_resolution_scaled = textures_resolution_scaled; // Log2 of sample count, for alpha to mask and with ROV, for EDRAM address // calculation with MSAA. diff --git a/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc b/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc index 46f372503..aeee74b43 100644 --- a/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc +++ b/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc @@ -455,7 +455,7 @@ bool D3D12RenderTargetCache::Initialize() { if (path_ == Path::kHostRenderTargets) { // Host render targets. - gamma_render_target_as_srgb_ = cvars::gamma_render_target_as_srgb; + gamma_render_target_as_unorm16_ = cvars::gamma_render_target_as_unorm16; depth_float24_round_ = cvars::depth_float24_round; depth_float24_convert_in_pixel_shader_ = @@ -498,6 +498,17 @@ bool D3D12RenderTargetCache::Initialize() { break; } } + if (msaa_2x_supported_ && gamma_render_target_as_unorm16_) { + multisample_quality_levels.Format = DXGI_FORMAT_R16G16B16A16_UNORM; + multisample_quality_levels.NumQualityLevels = 0; + if (FAILED(device->CheckFeatureSupport( + D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS, + &multisample_quality_levels, + sizeof(multisample_quality_levels))) || + !multisample_quality_levels.NumQualityLevels) { + msaa_2x_supported_ = false; + } + } } else { msaa_2x_supported_ = false; } @@ -1013,8 +1024,8 @@ bool D3D12RenderTargetCache::Initialize() { } else if (path_ == Path::kPixelShaderInterlock) { // Pixel shader interlock (rasterizer-ordered view). - // Blending is done in linear space directly in shaders. - gamma_render_target_as_srgb_ = false; + // Piecewise linear gamma is 8-bit with programmable blending. + gamma_render_target_as_unorm16_ = false; // Always true float24 depth rounded to the nearest even. depth_float24_round_ = true; @@ -1774,12 +1785,10 @@ DXGI_FORMAT D3D12RenderTargetCache::GetColorResourceDXGIFormat( // compression. switch (format) { case xenos::ColorRenderTargetFormat::k_8_8_8_8: - case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: - if (gamma_render_target_as_srgb_) { - // Can toggle between UNORM and UNORM_SRGB for the same data. - return DXGI_FORMAT_R8G8B8A8_TYPELESS; - } return DXGI_FORMAT_R8G8B8A8_UNORM; + case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: + return gamma_render_target_as_unorm16_ ? DXGI_FORMAT_R16G16B16A16_UNORM + : DXGI_FORMAT_R8G8B8A8_UNORM; case xenos::ColorRenderTargetFormat::k_2_10_10_10: case xenos::ColorRenderTargetFormat::k_2_10_10_10_AS_10_10_10_10: return DXGI_FORMAT_R10G10B10A2_UNORM; @@ -1812,11 +1821,6 @@ DXGI_FORMAT D3D12RenderTargetCache::GetColorResourceDXGIFormat( DXGI_FORMAT D3D12RenderTargetCache::GetColorDrawDXGIFormat( xenos::ColorRenderTargetFormat format) const { switch (format) { - case xenos::ColorRenderTargetFormat::k_8_8_8_8: - return DXGI_FORMAT_R8G8B8A8_UNORM; - case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: - return gamma_render_target_as_srgb_ ? DXGI_FORMAT_R8G8B8A8_UNORM_SRGB - : DXGI_FORMAT_R8G8B8A8_UNORM; case xenos::ColorRenderTargetFormat::k_16_16: return DXGI_FORMAT_R16G16_SNORM; case xenos::ColorRenderTargetFormat::k_16_16_16_16: @@ -1910,6 +1914,10 @@ DXGI_FORMAT D3D12RenderTargetCache::GetDepthSRVStencilDXGIFormat( } } +bool D3D12RenderTargetCache::IsGammaFormatHostStorageSeparate() const { + return gamma_render_target_as_unorm16_; +} + RenderTargetCache::RenderTarget* D3D12RenderTargetCache::CreateRenderTarget( RenderTargetKey key) { ID3D12Device* device = command_processor_.GetD3D12Provider().GetDevice(); @@ -1990,7 +1998,6 @@ RenderTargetCache::RenderTarget* D3D12RenderTargetCache::CreateRenderTarget( } D3D12_CPU_DESCRIPTOR_HANDLE descriptor_draw_handle = descriptor_draw.GetHandle(); - ui::d3d12::D3D12CpuDescriptorPool::Descriptor descriptor_draw_srgb; ui::d3d12::D3D12CpuDescriptorPool::Descriptor descriptor_load_separate; ui::d3d12::D3D12CpuDescriptorPool::Descriptor descriptor_srv_stencil; D3D12_SHADER_RESOURCE_VIEW_DESC srv_desc; @@ -2049,23 +2056,6 @@ RenderTargetCache::RenderTarget* D3D12RenderTargetCache::CreateRenderTarget( } device->CreateRenderTargetView(resource.Get(), &rtv_desc, descriptor_draw_handle); - // sRGB drawing RTV. - switch (key.GetColorFormat()) { - case xenos::ColorRenderTargetFormat::k_8_8_8_8: - case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: - if (gamma_render_target_as_srgb_) { - descriptor_draw_srgb = descriptor_pool.AllocateDescriptor(); - if (!descriptor_draw_srgb.IsValid()) { - return nullptr; - } - rtv_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; - device->CreateRenderTargetView(resource.Get(), &rtv_desc, - descriptor_draw_srgb.GetHandle()); - } - break; - default: - break; - } // Ownership transfer RTV. DXGI_FORMAT load_format = GetColorOwnershipTransferDXGIFormat(key.GetColorFormat()); @@ -2086,9 +2076,8 @@ RenderTargetCache::RenderTarget* D3D12RenderTargetCache::CreateRenderTarget( return new D3D12RenderTarget( key, resource.Get(), std::move(descriptor_draw), - std::move(descriptor_draw_srgb), std::move(descriptor_load_separate), - std::move(descriptor_srv), std::move(descriptor_srv_stencil), - resource_state); + std::move(descriptor_load_separate), std::move(descriptor_srv), + std::move(descriptor_srv_stencil), resource_state); } bool D3D12RenderTargetCache::IsHostDepthEncodingDifferent( @@ -3429,15 +3418,25 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { if (dest_is_64bpp) { // Handle construction of 64bpp color, either from two 32-bit samples in r0 - // and r1, or from one 64bpp sample in r1. Using r2.x as temporary when + // and r1, or from one 64bpp sample in r1. Using r2.xy as temporary when // needed. // If color_packed_in_r0x_and_r1x, use the generic path for combining two // 32-bit samples - as raw in r0.x and r1.x - into the destination. bool color_packed_in_r0x_and_r1x = false; if (source_is_color) { switch (source_color_format) { - case xenos::ColorRenderTargetFormat::k_8_8_8_8: case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: { + // 8_8_8_8_GAMMA is represented by linear stored in + // R16G16B16A16_UNORM. + for (uint32_t i = 0; i < 2; ++i) { + for (uint32_t j = 0; j < 3; ++j) { + DxbcShaderTranslator::PreSaturatedLinearToPWLGamma(a, i, j, i, j, + 2, 0, 2, 1); + } + } + } + [[fallthrough]]; + case xenos::ColorRenderTargetFormat::k_8_8_8_8: { color_packed_in_r0x_and_r1x = true; for (uint32_t i = 0; i < 2; ++i) { a.OpMAd(dxbc::Dest::R(i), dxbc::Src::R(i), dxbc::Src::LF(255.0f), @@ -3588,7 +3587,14 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { switch (source_color_format) { case xenos::ColorRenderTargetFormat::k_8_8_8_8: case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: { + // 8_8_8_8_GAMMA is represented by linear stored in + // R16G16B16A16_UNORM. if (dest_is_stencil_bit) { + if (source_color_format == + xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA) { + DxbcShaderTranslator::PreSaturatedLinearToPWLGamma(a, 1, 0, 1, 0, + 2, 0, 2, 1); + } a.OpMAd(dxbc::Dest::R(1, 0b0001), dxbc::Src::R(1, dxbc::Src::kXXXX), dxbc::Src::LF(255.0f), dxbc::Src::LF(0.5f)); a.OpFToU(dxbc::Dest::R(1, 0b0001), @@ -3598,9 +3604,30 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { xenos::ColorRenderTargetFormat::k_8_8_8_8 || dest_color_format == xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA)) { - // Same format - passthrough. + // Same format - only perform color space conversion. + if (dest_color_format != source_color_format) { + if (dest_color_format == + xenos::ColorRenderTargetFormat::k_8_8_8_8) { + for (uint32_t i = 0; i < 3; ++i) { + DxbcShaderTranslator::PreSaturatedLinearToPWLGamma( + a, 1, i, 1, i, 2, 0, 2, 1); + } + } else { + for (uint32_t i = 0; i < 3; ++i) { + DxbcShaderTranslator::PWLGammaToLinear(a, 1, i, 1, i, true, 2, + 0, 2, 1); + } + } + } a.OpMov(dxbc::Dest::O(0), dxbc::Src::R(1)); } else if (mode.output == TransferOutput::kDepth) { + if (source_color_format == + xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA) { + for (uint32_t i = 1; i < 3; ++i) { + DxbcShaderTranslator::PreSaturatedLinearToPWLGamma( + a, 1, i, 1, i, 2, 0, 2, 1); + } + } // When need only depth, not stencil, skip the red component. a.OpMAd(dxbc::Dest::R( 1, osgn_parameter_index_sv_stencil_ref != UINT32_MAX @@ -3625,6 +3652,10 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { dxbc::Src::R(1, dxbc::Src::kYYYY)); } else { color_packed_in_r1x = true; + for (uint32_t i = 0; i < 3; ++i) { + DxbcShaderTranslator::PreSaturatedLinearToPWLGamma(a, 1, i, 1, i, + 2, 0, 2, 1); + } a.OpMAd(dxbc::Dest::R(1), dxbc::Src::R(1), dxbc::Src::LF(255.0f), dxbc::Src::LF(0.5f)); a.OpFToU(dxbc::Dest::R(1), dxbc::Src::R(1)); @@ -3768,8 +3799,7 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { // this is the end of the shader. if (color_packed_in_r1x) { switch (dest_color_format) { - case xenos::ColorRenderTargetFormat::k_8_8_8_8: - case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: { + case xenos::ColorRenderTargetFormat::k_8_8_8_8: { a.OpUBFE(dxbc::Dest::R(1), dxbc::Src::LU(8), dxbc::Src::LU(0, 8, 16, 24), dxbc::Src::R(1, dxbc::Src::kXXXX)); @@ -3777,6 +3807,26 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { a.OpMul(dxbc::Dest::O(0), dxbc::Src::R(1), dxbc::Src::LF(1.0f / 255.0f)); } break; + case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: { + // 8_8_8_8_GAMMA is represented by linear stored in + // R16G16B16A16_UNORM. + a.OpUBFE(dxbc::Dest::R(1), dxbc::Src::LU(8), + dxbc::Src::LU(0, 8, 16, 24), + dxbc::Src::R(1, dxbc::Src::kXXXX)); + a.OpUToF(dxbc::Dest::R(1), dxbc::Src::R(1)); + a.OpMul(dxbc::Dest::R(1, 0b0111), dxbc::Src::R(1), + dxbc::Src::LF(1.0f / 255.0f)); + a.OpMul(dxbc::Dest::O(0, 0b1000), dxbc::Src::R(1), + dxbc::Src::LF(1.0f / 255.0f)); + for (uint32_t i = 0; i < 3; ++i) { + DxbcShaderTranslator::PWLGammaToLinear(a, 1, i, 1, i, true, 0, + 0, 0, 1); + } + // TODO(Triang3l): The `mov` can be eliminated by passing the + // destination to `PWLGammaToLinear` as `dxbc::Dest` rather than + // just the register index. + a.OpMov(dxbc::Dest::O(0, 0b0111), dxbc::Src::R(1)); + } break; case xenos::ColorRenderTargetFormat::k_2_10_10_10: case xenos::ColorRenderTargetFormat::k_2_10_10_10_AS_10_10_10_10: { a.OpUBFE(dxbc::Dest::R(1), dxbc::Src::LU(10, 10, 10, 2), @@ -5357,13 +5407,24 @@ void D3D12RenderTargetCache::PerformTransfersAndResolveClears( float color_clear_value[4] = {}; bool clear_via_drawing = false; switch (dest_rt_key.GetColorFormat()) { - case xenos::ColorRenderTargetFormat::k_8_8_8_8: - case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: { + case xenos::ColorRenderTargetFormat::k_8_8_8_8: { for (uint32_t j = 0; j < 4; ++j) { color_clear_value[j] = ((clear_value >> (j * 8)) & 0xFF) * (1.0f / 0xFF); } } break; + case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: { + // 8_8_8_8_GAMMA is represented by linear stored in + // R16G16B16A16_UNORM. + for (uint32_t j = 0; j < 4; ++j) { + color_clear_value[j] = + ((clear_value >> (j * 8)) & 0xFF) * (1.0f / 0xFF); + } + for (uint32_t j = 0; j < 3; ++j) { + color_clear_value[j] = + xenos::PWLGammaToLinear(color_clear_value[j]); + } + } break; case xenos::ColorRenderTargetFormat::k_2_10_10_10: case xenos::ColorRenderTargetFormat::k_2_10_10_10_AS_10_10_10_10: { for (uint32_t j = 0; j < 3; ++j) { @@ -5500,17 +5561,6 @@ void D3D12RenderTargetCache::SetCommandListRenderTargets( sizeof(current_command_list_render_targets_))) { are_current_command_list_render_targets_valid_ = false; } - uint32_t render_targets_are_srgb; - if (gamma_render_target_as_srgb_) { - render_targets_are_srgb = last_update_accumulated_color_targets_are_gamma(); - if (are_current_command_list_render_targets_srgb_ != - render_targets_are_srgb) { - are_current_command_list_render_targets_srgb_ = render_targets_are_srgb; - are_current_command_list_render_targets_valid_ = false; - } - } else { - render_targets_are_srgb = 0; - } if (!are_current_command_list_render_targets_valid_) { std::memcpy(current_command_list_render_targets_, depth_and_color_render_targets, @@ -5537,10 +5587,7 @@ void D3D12RenderTargetCache::SetCommandListRenderTargets( : null_rtv_descriptor_ss_.GetHandle(); } auto& d3d12_rt = *static_cast(render_target); - rtv_handles[rtv_count++] = - (render_targets_are_srgb & (uint32_t(1) << i)) - ? d3d12_rt.descriptor_draw_srgb().GetHandle() - : d3d12_rt.descriptor_draw().GetHandle(); + rtv_handles[rtv_count++] = d3d12_rt.descriptor_draw().GetHandle(); } command_processor_.GetDeferredCommandList().D3DOMSetRenderTargets( rtv_count, rtv_handles, FALSE, @@ -6227,7 +6274,6 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline( } else { switch (key.GetColorFormat()) { case xenos::ColorRenderTargetFormat::k_8_8_8_8: - case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: if (!source_is_uint) { a.OpMAd(dxbc::Dest::R(1), dxbc::Src::R(1), dxbc::Src::LF(255.0f), dxbc::Src::LF(0.5f)); @@ -6239,6 +6285,22 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline( dxbc::Src::R(1, dxbc::Src::kXXXX)); } break; + case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: + // 8_8_8_8_GAMMA is represented by linear stored in R16G16B16A16_UNORM. + assert_false(source_is_uint); + for (uint32_t i = 0; i < 3; ++i) { + DxbcShaderTranslator::PreSaturatedLinearToPWLGamma(a, 1, i, 1, i, 0, + 0, 0, 1); + } + a.OpMAd(dxbc::Dest::R(1), dxbc::Src::R(1), dxbc::Src::LF(255.0f), + dxbc::Src::LF(0.5f)); + a.OpFToU(dxbc::Dest::R(1), dxbc::Src::R(1)); + for (uint32_t i = 1; i < 4; ++i) { + a.OpBFI(dxbc::Dest::R(1, 0b0001), dxbc::Src::LU(8), + dxbc::Src::LU(i * 8), dxbc::Src::R(1).Select(i), + dxbc::Src::R(1, dxbc::Src::kXXXX)); + } + break; case xenos::ColorRenderTargetFormat::k_2_10_10_10: case xenos::ColorRenderTargetFormat::k_2_10_10_10_AS_10_10_10_10: if (!source_is_uint) { diff --git a/src/xenia/gpu/d3d12/d3d12_render_target_cache.h b/src/xenia/gpu/d3d12/d3d12_render_target_cache.h index d89e28e71..3a5dbaeb0 100644 --- a/src/xenia/gpu/d3d12/d3d12_render_target_cache.h +++ b/src/xenia/gpu/d3d12/d3d12_render_target_cache.h @@ -95,8 +95,8 @@ class D3D12RenderTargetCache final : public RenderTargetCache { // For host render targets. - bool gamma_render_target_as_srgb() const { - return gamma_render_target_as_srgb_; + bool gamma_render_target_as_unorm16() const { + return gamma_render_target_as_unorm16_; } // Using R16G16[B16A16]_SNORM, which are -1...1, not the needed -32...32. @@ -129,6 +129,8 @@ class D3D12RenderTargetCache final : public RenderTargetCache { xenos::DepthRenderTargetFormat format); protected: + bool IsGammaFormatHostStorageSeparate() const override; + uint32_t GetMaxRenderTargetWidth() const override { return D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION; } @@ -225,16 +227,13 @@ class D3D12RenderTargetCache final : public RenderTargetCache { class D3D12RenderTarget final : public RenderTarget { public: - // descriptor_draw_srgb is only used for k_8_8_8_8 render targets when host - // sRGB (gamma_render_target_as_srgb) is used. descriptor_load is present - // when the DXGI formats are different for drawing and bit-exact loading - // (for NaN pattern preservation across EDRAM tile ownership transfers in - // floating-point formats, and to distinguish between two -1 representations - // in snorm formats). + // descriptor_load is present when the DXGI formats are different for + // drawing and bit-exact loading (for NaN pattern preservation across EDRAM + // tile ownership transfers in floating-point formats, and to distinguish + // between two -1 representations in snorm formats). D3D12RenderTarget( RenderTargetKey key, ID3D12Resource* resource, ui::d3d12::D3D12CpuDescriptorPool::Descriptor&& descriptor_draw, - ui::d3d12::D3D12CpuDescriptorPool::Descriptor&& descriptor_draw_srgb, ui::d3d12::D3D12CpuDescriptorPool::Descriptor&& descriptor_load_separate, ui::d3d12::D3D12CpuDescriptorPool::Descriptor&& descriptor_srv, @@ -243,7 +242,6 @@ class D3D12RenderTargetCache final : public RenderTargetCache { : RenderTarget(key), resource_(resource), descriptor_draw_(std::move(descriptor_draw)), - descriptor_draw_srgb_(std::move(descriptor_draw_srgb)), descriptor_load_separate_(std::move(descriptor_load_separate)), descriptor_srv_(std::move(descriptor_srv)), descriptor_srv_stencil_(std::move(descriptor_srv_stencil)), @@ -254,10 +252,6 @@ class D3D12RenderTargetCache final : public RenderTargetCache { const { return descriptor_draw_; } - const ui::d3d12::D3D12CpuDescriptorPool::Descriptor& descriptor_draw_srgb() - const { - return descriptor_draw_srgb_; - } const ui::d3d12::D3D12CpuDescriptorPool::Descriptor& descriptor_srv() const { return descriptor_srv_; @@ -297,7 +291,6 @@ class D3D12RenderTargetCache final : public RenderTargetCache { private: Microsoft::WRL::ComPtr resource_; ui::d3d12::D3D12CpuDescriptorPool::Descriptor descriptor_draw_; - ui::d3d12::D3D12CpuDescriptorPool::Descriptor descriptor_draw_srgb_; ui::d3d12::D3D12CpuDescriptorPool::Descriptor descriptor_load_separate_; // Texture SRV non-shader-visible descriptors, to prepare shader-visible // descriptors faster, by copying rather than by creating every time. @@ -718,7 +711,7 @@ class D3D12RenderTargetCache final : public RenderTargetCache { bool use_stencil_reference_output_ = false; - bool gamma_render_target_as_srgb_ = false; + bool gamma_render_target_as_unorm16_ = false; bool depth_float24_round_ = false; bool depth_float24_convert_in_pixel_shader_ = false; @@ -753,7 +746,6 @@ class D3D12RenderTargetCache final : public RenderTargetCache { const RenderTarget* const* current_command_list_render_targets_[1 + xenos::kMaxColorRenderTargets]; - uint32_t are_current_command_list_render_targets_srgb_ = 0; bool are_current_command_list_render_targets_valid_ = false; // Temporary storage for descriptors used in PerformTransfersAndResolveClears diff --git a/src/xenia/gpu/d3d12/d3d12_shared_memory.cc b/src/xenia/gpu/d3d12/d3d12_shared_memory.cc index e946a3319..99cf51d1b 100644 --- a/src/xenia/gpu/d3d12/d3d12_shared_memory.cc +++ b/src/xenia/gpu/d3d12/d3d12_shared_memory.cc @@ -431,7 +431,7 @@ bool D3D12SharedMemory::UploadRanges( return false; } MakeRangeValid(upload_range_start << page_size_log2(), - uint32_t(upload_buffer_size), false, false); + uint32_t(upload_buffer_size), false); std::memcpy( upload_buffer_mapping, memory().TranslatePhysical(upload_range_start << page_size_log2()), diff --git a/src/xenia/gpu/d3d12/pipeline_cache.cc b/src/xenia/gpu/d3d12/pipeline_cache.cc index ec7c0b249..a81b19675 100644 --- a/src/xenia/gpu/d3d12/pipeline_cache.cc +++ b/src/xenia/gpu/d3d12/pipeline_cache.cc @@ -100,7 +100,8 @@ PipelineCache::PipelineCache(D3D12CommandProcessor& command_processor, shader_translator_ = std::make_unique( provider.GetAdapterVendorID(), bindless_resources_used_, edram_rov_used, - render_target_cache_.gamma_render_target_as_srgb(), + !(edram_rov_used || + render_target_cache_.gamma_render_target_as_unorm16()), render_target_cache_.msaa_2x_supported(), render_target_cache_.draw_resolution_scale_x(), render_target_cache_.draw_resolution_scale_y(), @@ -393,7 +394,9 @@ void PipelineCache::InitializeShaderStorage( StringBuffer ucode_disasm_buffer; DxbcShaderTranslator translator( provider.GetAdapterVendorID(), bindless_resources_used_, - edram_rov_used, render_target_cache_.gamma_render_target_as_srgb(), + edram_rov_used, + !(edram_rov_used || + render_target_cache_.gamma_render_target_as_unorm16()), render_target_cache_.msaa_2x_supported(), render_target_cache_.draw_resolution_scale_x(), render_target_cache_.draw_resolution_scale_y(), diff --git a/src/xenia/gpu/dxbc_shader_translator.cc b/src/xenia/gpu/dxbc_shader_translator.cc index 12a0d02b0..96b7759e6 100644 --- a/src/xenia/gpu/dxbc_shader_translator.cc +++ b/src/xenia/gpu/dxbc_shader_translator.cc @@ -68,7 +68,7 @@ using namespace ucode; DxbcShaderTranslator::DxbcShaderTranslator( ui::GraphicsProvider::GpuVendorID vendor_id, bool bindless_resources_used, - bool edram_rov_used, bool gamma_render_target_as_srgb, + bool edram_rov_used, bool gamma_render_target_as_unorm8, bool msaa_2x_supported, uint32_t draw_resolution_scale_x, uint32_t draw_resolution_scale_y, bool force_emit_source_map) : a_(shader_code_, statistics_), @@ -76,7 +76,7 @@ DxbcShaderTranslator::DxbcShaderTranslator( vendor_id_(vendor_id), bindless_resources_used_(bindless_resources_used), edram_rov_used_(edram_rov_used), - gamma_render_target_as_srgb_(gamma_render_target_as_srgb), + gamma_render_target_as_unorm8_(gamma_render_target_as_unorm8), msaa_2x_supported_(msaa_2x_supported), draw_resolution_scale_x_(draw_resolution_scale_x), draw_resolution_scale_y_(draw_resolution_scale_y), @@ -223,9 +223,10 @@ void DxbcShaderTranslator::PopSystemTemp(uint32_t count) { } void DxbcShaderTranslator::PWLGammaToLinear( - uint32_t target_temp, uint32_t target_temp_component, uint32_t source_temp, - uint32_t source_temp_component, bool source_pre_saturated, uint32_t temp1, - uint32_t temp1_component, uint32_t temp2, uint32_t temp2_component) { + dxbc::Assembler& a, uint32_t target_temp, uint32_t target_temp_component, + uint32_t source_temp, uint32_t source_temp_component, + bool source_pre_saturated, uint32_t temp1, uint32_t temp1_component, + uint32_t temp2, uint32_t temp2_component) { // The source is needed only once to begin building the result, so it can be // the same as the destination. assert_true(temp1 != target_temp || temp1_component != target_temp_component); @@ -246,25 +247,25 @@ void DxbcShaderTranslator::PWLGammaToLinear( // Using `source >= threshold` comparisons because the input might have not // been saturated yet, and thus it may be NaN - since it will be saturated to // 0 later, the 0...64/255 case should be selected for it. - a_.OpGE(temp2_dest, source_src, dxbc::Src::LF(96.0f / 255.0f)); - a_.OpIf(true, temp2_src); + a.OpGE(temp2_dest, source_src, dxbc::Src::LF(96.0f / 255.0f)); + a.OpIf(true, temp2_src); // [96/255 ... 1 - a_.OpGE(temp2_dest, source_src, dxbc::Src::LF(192.0f / 255.0f)); - a_.OpMovC(temp1_dest, temp2_src, dxbc::Src::LF(8.0f / 1024.0f), - dxbc::Src::LF(4.0f / 1024.0f)); - a_.OpMovC(temp2_dest, temp2_src, dxbc::Src::LF(-1024.0f), - dxbc::Src::LF(-256.0f)); - a_.OpElse(); + a.OpGE(temp2_dest, source_src, dxbc::Src::LF(192.0f / 255.0f)); + a.OpMovC(temp1_dest, temp2_src, dxbc::Src::LF(8.0f / 1024.0f), + dxbc::Src::LF(4.0f / 1024.0f)); + a.OpMovC(temp2_dest, temp2_src, dxbc::Src::LF(-1024.0f), + dxbc::Src::LF(-256.0f)); + a.OpElse(); // 0 ... 96/255) - a_.OpGE(temp2_dest, source_src, dxbc::Src::LF(64.0f / 255.0f)); - a_.OpMovC(temp1_dest, temp2_src, dxbc::Src::LF(2.0f / 1024.0f), - dxbc::Src::LF(1.0f / 1024.0f)); - a_.OpMovC(temp2_dest, temp2_src, dxbc::Src::LF(-64.0f), dxbc::Src::LF(0.0f)); - a_.OpEndIf(); + a.OpGE(temp2_dest, source_src, dxbc::Src::LF(64.0f / 255.0f)); + a.OpMovC(temp1_dest, temp2_src, dxbc::Src::LF(2.0f / 1024.0f), + dxbc::Src::LF(1.0f / 1024.0f)); + a.OpMovC(temp2_dest, temp2_src, dxbc::Src::LF(-64.0f), dxbc::Src::LF(0.0f)); + a.OpEndIf(); if (!source_pre_saturated) { // Saturate the input, and flush NaN to 0. - a_.OpMov(target_dest, source_src, true); + a.OpMov(target_dest, source_src, true); } // linear = gamma * (255 * 1024) * scale + offset // As both 1024 and the scale are powers of 2, and 1024 * scale is not smaller @@ -273,22 +274,22 @@ void DxbcShaderTranslator::PWLGammaToLinear( // gamma * (255 * 1024 * scale) - or the option chosen here, as long as // 1024 is applied before the scale since the scale is < 1 (specifically at // least 1/1024), and it may make very small values denormal. - a_.OpMul(target_dest, source_pre_saturated ? source_src : target_src, - dxbc::Src::LF(255.0f * 1024.0f)); - a_.OpMAd(target_dest, target_src, temp1_src, temp2_src); + a.OpMul(target_dest, source_pre_saturated ? source_src : target_src, + dxbc::Src::LF(255.0f * 1024.0f)); + a.OpMAd(target_dest, target_src, temp1_src, temp2_src); // linear += trunc(linear * scale) - a_.OpMul(temp1_dest, target_src, temp1_src); - a_.OpRoundZ(temp1_dest, temp1_src); - a_.OpAdd(target_dest, target_src, temp1_src); + a.OpMul(temp1_dest, target_src, temp1_src); + a.OpRoundZ(temp1_dest, temp1_src); + a.OpAdd(target_dest, target_src, temp1_src); // linear *= 1/1023 - a_.OpMul(target_dest, target_src, dxbc::Src::LF(1.0f / 1023.0f)); + a.OpMul(target_dest, target_src, dxbc::Src::LF(1.0f / 1023.0f)); } void DxbcShaderTranslator::PreSaturatedLinearToPWLGamma( - uint32_t target_temp, uint32_t target_temp_component, uint32_t source_temp, - uint32_t source_temp_component, uint32_t temp_or_target, - uint32_t temp_or_target_component, uint32_t temp_non_target, - uint32_t temp_non_target_component) { + dxbc::Assembler& a, uint32_t target_temp, uint32_t target_temp_component, + uint32_t source_temp, uint32_t source_temp_component, + uint32_t temp_or_target, uint32_t temp_or_target_component, + uint32_t temp_non_target, uint32_t temp_non_target_component) { // The source may be the same as the target, but in this case it can't also be // used as a temporary variable. assert_true(target_temp != source_temp || @@ -318,28 +319,28 @@ void DxbcShaderTranslator::PreSaturatedLinearToPWLGamma( // Get the scale (into temp_or_target) and the offset (into temp_non_target) // for the piece. - a_.OpGE(temp_non_target_dest, source_src, dxbc::Src::LF(128.0f / 1023.0f)); - a_.OpIf(true, temp_non_target_src); + a.OpGE(temp_non_target_dest, source_src, dxbc::Src::LF(128.0f / 1023.0f)); + a.OpIf(true, temp_non_target_src); // [128/1023 ... 1 - a_.OpGE(temp_non_target_dest, source_src, dxbc::Src::LF(512.0f / 1023.0f)); - a_.OpMovC(temp_or_target_dest, temp_non_target_src, - dxbc::Src::LF(1023.0f / 8.0f), dxbc::Src::LF(1023.0f / 4.0f)); - a_.OpMovC(temp_non_target_dest, temp_non_target_src, - dxbc::Src::LF(128.0f / 255.0f), dxbc::Src::LF(64.0f / 255.0f)); - a_.OpElse(); + a.OpGE(temp_non_target_dest, source_src, dxbc::Src::LF(512.0f / 1023.0f)); + a.OpMovC(temp_or_target_dest, temp_non_target_src, + dxbc::Src::LF(1023.0f / 8.0f), dxbc::Src::LF(1023.0f / 4.0f)); + a.OpMovC(temp_non_target_dest, temp_non_target_src, + dxbc::Src::LF(128.0f / 255.0f), dxbc::Src::LF(64.0f / 255.0f)); + a.OpElse(); // 0 ... 128/1023) - a_.OpGE(temp_non_target_dest, source_src, dxbc::Src::LF(64.0f / 1023.0f)); - a_.OpMovC(temp_or_target_dest, temp_non_target_src, - dxbc::Src::LF(1023.0f / 2.0f), dxbc::Src::LF(1023.0f)); - a_.OpMovC(temp_non_target_dest, temp_non_target_src, - dxbc::Src::LF(32.0f / 255.0f), dxbc::Src::LF(0.0f)); - a_.OpEndIf(); + a.OpGE(temp_non_target_dest, source_src, dxbc::Src::LF(64.0f / 1023.0f)); + a.OpMovC(temp_or_target_dest, temp_non_target_src, + dxbc::Src::LF(1023.0f / 2.0f), dxbc::Src::LF(1023.0f)); + a.OpMovC(temp_non_target_dest, temp_non_target_src, + dxbc::Src::LF(32.0f / 255.0f), dxbc::Src::LF(0.0f)); + a.OpEndIf(); // gamma = trunc(linear * scale) * (1.0 / 255.0) + offset - a_.OpMul(target_dest, source_src, temp_or_target_src); - a_.OpRoundZ(target_dest, target_src); - a_.OpMAd(target_dest, target_src, dxbc::Src::LF(1.0f / 255.0f), - temp_non_target_src); + a.OpMul(target_dest, source_src, temp_or_target_src); + a.OpRoundZ(target_dest, target_src); + a.OpMAd(target_dest, target_src, dxbc::Src::LF(1.0f / 255.0f), + temp_non_target_src); } void DxbcShaderTranslator::RemapAndConvertVertexIndices( @@ -2136,7 +2137,8 @@ const DxbcShaderTranslator::SystemConstantRdef {"xe_texture_swizzled_signs", ShaderRdefTypeIndex::kUint4Array2, sizeof(uint32_t) * 4 * 2}, - {"xe_textures_resolved", ShaderRdefTypeIndex::kUint, sizeof(uint32_t)}, + {"xe_textures_resolution_scaled", ShaderRdefTypeIndex::kUint, + sizeof(uint32_t)}, {"xe_sample_count_log2", ShaderRdefTypeIndex::kUint2, sizeof(uint32_t) * 2}, {"xe_alpha_test_reference", ShaderRdefTypeIndex::kFloat, sizeof(float)}, diff --git a/src/xenia/gpu/dxbc_shader_translator.h b/src/xenia/gpu/dxbc_shader_translator.h index 20fbdd328..23db4ec09 100644 --- a/src/xenia/gpu/dxbc_shader_translator.h +++ b/src/xenia/gpu/dxbc_shader_translator.h @@ -49,7 +49,7 @@ class DxbcShaderTranslator : public ShaderTranslator { public: DxbcShaderTranslator(ui::GraphicsProvider::GpuVendorID vendor_id, bool bindless_resources_used, bool edram_rov_used, - bool gamma_render_target_as_srgb = false, + bool gamma_render_target_as_unorm8 = false, bool msaa_2x_supported = true, uint32_t draw_resolution_scale_x = 1, uint32_t draw_resolution_scale_y = 1, @@ -310,9 +310,8 @@ class DxbcShaderTranslator : public ShaderTranslator { // components of each of the 32 used texture fetch constants. uint32_t texture_swizzled_signs[8]; - // Whether the contents of each texture in fetch constants comes from a - // resolve operation. - uint32_t textures_resolved; + // Whether each texture in fetch constants contains resolution-scaled data. + uint32_t textures_resolution_scaled; // Log2 of X and Y sample size. Used for alpha to mask, and for MSAA with // ROV, this is used for EDRAM address calculation. uint32_t sample_count_log2[2]; @@ -419,7 +418,7 @@ class DxbcShaderTranslator : public ShaderTranslator { kTextureSwizzledSigns, - kTexturesResolved, + kTexturesResolutionScaled, kSampleCountLog2, kAlphaTestReference, @@ -572,6 +571,26 @@ class DxbcShaderTranslator : public ShaderTranslator { uint32_t temp2_temp_component, bool remap_to_0_to_0_5); + // Converts one scalar from piecewise linear gamma to linear. The target may + // be the same as the source, the temporary variables must be different. If + // the source is not pre-saturated, saturation will be done internally. + static void PWLGammaToLinear(dxbc::Assembler& a, uint32_t target_temp, + uint32_t target_temp_component, + uint32_t source_temp, + uint32_t source_temp_component, + bool source_pre_saturated, uint32_t temp1, + uint32_t temp1_component, uint32_t temp2, + uint32_t temp2_component); + // Converts one scalar, which must be saturated before calling this function, + // from linear to piecewise linear gamma. The target may be the same as either + // the source or as temp_or_target, but not as both (and temp_or_target may + // not be the same as the source). temp_non_target must be different. + static void PreSaturatedLinearToPWLGamma( + dxbc::Assembler& a, uint32_t target_temp, uint32_t target_temp_component, + uint32_t source_temp, uint32_t source_temp_component, + uint32_t temp_or_target, uint32_t temp_or_target_component, + uint32_t temp_non_target, uint32_t temp_non_target_component); + protected: void Reset() override; @@ -683,24 +702,6 @@ class DxbcShaderTranslator : public ShaderTranslator { // inactive. void ExportToMemory(uint8_t export_eM); - // Converts one scalar from piecewise linear gamma to linear. The target may - // be the same as the source, the temporary variables must be different. If - // the source is not pre-saturated, saturation will be done internally. - void PWLGammaToLinear(uint32_t target_temp, uint32_t target_temp_component, - uint32_t source_temp, uint32_t source_temp_component, - bool source_pre_saturated, uint32_t temp1, - uint32_t temp1_component, uint32_t temp2, - uint32_t temp2_component); - // Converts one scalar, which must be saturated before calling this function, - // from linear to piecewise linear gamma. The target may be the same as either - // the source or as temp_or_target, but not as both (and temp_or_target may - // not be the same as the source). temp_non_target must be different. - void PreSaturatedLinearToPWLGamma( - uint32_t target_temp, uint32_t target_temp_component, - uint32_t source_temp, uint32_t source_temp_component, - uint32_t temp_or_target, uint32_t temp_or_target_component, - uint32_t temp_non_target, uint32_t temp_non_target_component); - bool IsSampleRate() const { assert_true(is_pixel_shader()); return DSV_IsWritingFloat24Depth() && !current_shader().writes_depth(); @@ -971,8 +972,9 @@ class DxbcShaderTranslator : public ShaderTranslator { bool edram_rov_used_; // Whether with RTV-based output-merger, k_8_8_8_8_GAMMA render targets are - // represented as host sRGB. - bool gamma_render_target_as_srgb_; + // represented as host 8-bit unsigned normalized, and require conversion in + // translated shaders. + bool gamma_render_target_as_unorm8_; // Whether 2x MSAA is emulated using real 2x MSAA rather than two samples of // 4x MSAA. diff --git a/src/xenia/gpu/dxbc_shader_translator_fetch.cc b/src/xenia/gpu/dxbc_shader_translator_fetch.cc index 7716c4a26..64ee66b9b 100644 --- a/src/xenia/gpu/dxbc_shader_translator_fetch.cc +++ b/src/xenia/gpu/dxbc_shader_translator_fetch.cc @@ -977,16 +977,17 @@ void DxbcShaderTranslator::ProcessTextureFetchInstruction( coord_src = dxbc::Src::R(system_temp_result_); } // Using system_temp_result_.w as a temporary for the flag indicating - // whether the texture was resolved - not involved in coordinate + // whether the texture is resolution-scaled - not involved in coordinate // calculations. assert_zero(used_result_nonzero_components & 0b1000); a_.OpAnd(dxbc::Dest::R(system_temp_result_, 0b1000), - LoadSystemConstant(SystemConstants::Index::kTexturesResolved, - offsetof(SystemConstants, textures_resolved), - dxbc::Src::kXXXX), + LoadSystemConstant( + SystemConstants::Index::kTexturesResolutionScaled, + offsetof(SystemConstants, textures_resolution_scaled), + dxbc::Src::kXXXX), dxbc::Src::LU(uint32_t(1) << tfetch_index)); a_.OpIf(true, dxbc::Src::R(system_temp_result_, dxbc::Src::kWWWW)); - // The texture is resolved - scale the coordinates and the size. + // The texture is resolution-scaled - scale the coordinates and the size. dxbc::Src resolution_scale_src( dxbc::Src::LF(float(draw_resolution_scale_x_), float(draw_resolution_scale_y_), 1.0f, 1.0f)); @@ -1103,12 +1104,12 @@ void DxbcShaderTranslator::ProcessTextureFetchInstruction( if (normalized_components_with_scaled_offsets) { // Using coord_and_sampler_temp.w as a temporary for the needed // resolution scale inverse - sampler not loaded yet. - a_.OpAnd( - dxbc::Dest::R(coord_and_sampler_temp, 0b1000), - LoadSystemConstant(SystemConstants::Index::kTexturesResolved, - offsetof(SystemConstants, textures_resolved), - dxbc::Src::kXXXX), - dxbc::Src::LU(uint32_t(1) << tfetch_index)); + a_.OpAnd(dxbc::Dest::R(coord_and_sampler_temp, 0b1000), + LoadSystemConstant( + SystemConstants::Index::kTexturesResolutionScaled, + offsetof(SystemConstants, textures_resolution_scaled), + dxbc::Src::kXXXX), + dxbc::Src::LU(uint32_t(1) << tfetch_index)); a_.OpIf(true, dxbc::Src::R(coord_and_sampler_temp, dxbc::Src::kWWWW)); a_.OpAdd( dxbc::Dest::R(coord_and_sampler_temp, @@ -1172,12 +1173,12 @@ void DxbcShaderTranslator::ProcessTextureFetchInstruction( if (normalized_components_with_scaled_offsets) { // Using coord_and_sampler_temp.w as a temporary for the needed // resolution scale inverse - sampler not loaded yet. - a_.OpAnd( - dxbc::Dest::R(coord_and_sampler_temp, 0b1000), - LoadSystemConstant(SystemConstants::Index::kTexturesResolved, - offsetof(SystemConstants, textures_resolved), - dxbc::Src::kXXXX), - dxbc::Src::LU(uint32_t(1) << tfetch_index)); + a_.OpAnd(dxbc::Dest::R(coord_and_sampler_temp, 0b1000), + LoadSystemConstant( + SystemConstants::Index::kTexturesResolutionScaled, + offsetof(SystemConstants, textures_resolution_scaled), + dxbc::Src::kXXXX), + dxbc::Src::LU(uint32_t(1) << tfetch_index)); a_.OpIf(true, dxbc::Src::R(coord_and_sampler_temp, dxbc::Src::kWWWW)); a_.OpMAd(dxbc::Dest::R(coord_and_sampler_temp, normalized_components_with_scaled_offsets), @@ -2090,56 +2091,9 @@ void DxbcShaderTranslator::ProcessTextureFetchInstruction( a_.OpBreak(); a_.OpCase(dxbc::Src::LU(uint32_t(xenos::TextureSign::kGamma))); uint32_t gamma_temp = PushSystemTemp(); - if (gamma_render_target_as_srgb_) { - // Check if the texture has sRGB rather that piecewise linear gamma. - // More likely that it's just a texture with PWL, put this case in the - // `if`, with `else` for sRGB resolved render targets. - a_.OpAnd( - dxbc::Dest::R(gamma_temp, 0b0001), - LoadSystemConstant(SystemConstants::Index::kTexturesResolved, - offsetof(SystemConstants, textures_resolved), - dxbc::Src::kXXXX), - dxbc::Src::LU(uint32_t(1) << tfetch_index)); - a_.OpIf(false, dxbc::Src::R(gamma_temp, dxbc::Src::kXXXX)); - } // Convert from piecewise linear. - PWLGammaToLinear(system_temp_result_, i, system_temp_result_, i, false, - gamma_temp, 0, gamma_temp, 1); - if (gamma_render_target_as_srgb_) { - a_.OpElse(); - // Convert from sRGB. - a_.OpMov(component_dest, component_src, true); - a_.OpGE(dxbc::Dest::R(gamma_temp, 0b0001), - dxbc::Src::LF(RenderTargetCache::kSrgbToLinearThreshold), - component_src); - a_.OpIf(true, dxbc::Src::R(gamma_temp, dxbc::Src::kXXXX)); - // sRGB <= kSrgbToLinearThreshold case - linear scale. - a_.OpMul(component_dest, component_src, - dxbc::Src::LF(1.0f / - RenderTargetCache::kSrgbToLinearDenominator1)); - a_.OpElse(); - // sRGB > kSrgbToLinearThreshold case. - // 0 and 1 must be exactly achievable - only convert when the - // saturated value is < 1. - a_.OpLT(dxbc::Dest::R(gamma_temp, 0b0001), component_src, - dxbc::Src::LF(1.0f)); - a_.OpIf(true, dxbc::Src::R(gamma_temp, dxbc::Src::kXXXX)); - a_.OpMAd(component_dest, component_src, - dxbc::Src::LF(1.0f / - RenderTargetCache::kSrgbToLinearDenominator2), - dxbc::Src::LF(RenderTargetCache::kSrgbToLinearOffset / - RenderTargetCache::kSrgbToLinearDenominator2)); - a_.OpLog(component_dest, component_src); - a_.OpMul(component_dest, component_src, - dxbc::Src::LF(RenderTargetCache::kSrgbToLinearExponent)); - a_.OpExp(component_dest, component_src); - // Close the < 1 check. - a_.OpEndIf(); - // Close the sRGB <= kSrgbToLinearThreshold check. - a_.OpEndIf(); - // Close the PWL or sRGB check. - a_.OpEndIf(); - } + PWLGammaToLinear(a_, system_temp_result_, i, system_temp_result_, i, + false, gamma_temp, 0, gamma_temp, 1); // Release gamma_temp. PopSystemTemp(); a_.OpBreak(); diff --git a/src/xenia/gpu/dxbc_shader_translator_om.cc b/src/xenia/gpu/dxbc_shader_translator_om.cc index 412e003ec..b7206ee65 100644 --- a/src/xenia/gpu/dxbc_shader_translator_om.cc +++ b/src/xenia/gpu/dxbc_shader_translator_om.cc @@ -1191,7 +1191,7 @@ void DxbcShaderTranslator::ROV_UnpackColor( dxbc::Src::LF(1.0f / 255.0f)); if (i) { for (uint32_t j = 0; j < 3; ++j) { - PWLGammaToLinear(color_temp, j, color_temp, j, true, temp1, + PWLGammaToLinear(a_, color_temp, j, color_temp, j, true, temp1, temp1_component, temp2, temp2_component); } } @@ -1344,7 +1344,7 @@ void DxbcShaderTranslator::ROV_PackPreClampedColor( : xenos::ColorRenderTargetFormat::k_8_8_8_8))); for (uint32_t j = 0; j < 4; ++j) { if (i && j < 3) { - PreSaturatedLinearToPWLGamma(temp1, temp1_component, color_temp, j, + PreSaturatedLinearToPWLGamma(a_, temp1, temp1_component, color_temp, j, temp1, temp1_component, temp2, temp2_component); // Denormalize and add 0.5 for rounding. @@ -1679,7 +1679,7 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToRTVs() { SystemConstants::Index::kColorExpBias, offsetof(SystemConstants, color_exp_bias) + sizeof(float) * i, dxbc::Src::kXXXX)); - if (!gamma_render_target_as_srgb_) { + if (gamma_render_target_as_unorm8_) { // Convert to gamma space - this is incorrect, since it must be done after // blending on the Xbox 360, but this is just one of many blending issues // in the RTV path. @@ -1690,8 +1690,9 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToRTVs() { a_.OpMov(dxbc::Dest::R(system_temp_color, 0b0111), dxbc::Src::R(system_temp_color), true); for (uint32_t j = 0; j < 3; ++j) { - PreSaturatedLinearToPWLGamma(system_temp_color, j, system_temp_color, j, - gamma_temp, 0, gamma_temp, 1); + PreSaturatedLinearToPWLGamma(a_, system_temp_color, j, + system_temp_color, j, gamma_temp, 0, + gamma_temp, 1); } a_.OpEndIf(); } diff --git a/src/xenia/gpu/render_target_cache.cc b/src/xenia/gpu/render_target_cache.cc index 4bc882bbc..5c070f14e 100644 --- a/src/xenia/gpu/render_target_cache.cc +++ b/src/xenia/gpu/render_target_cache.cc @@ -149,16 +149,15 @@ DEFINE_bool( "into account for render-to-texture, for more correct shadow filtering, " "bloom, etc., in some cases.", "GPU"); -// Disabled by default because of full-screen effects that occur when game -// shaders assume piecewise linear (4541080F), much more severe than -// blending-related issues. DEFINE_bool( - gamma_render_target_as_srgb, false, - "When the host can't write piecewise linear gamma directly with correct " - "blending, use sRGB output on the host for conceptually correct blending " - "in linear color space while having slightly different precision " - "distribution in the render target and severely incorrect values if the " - "game accesses the resulting colors directly as raw data.", + gamma_render_target_as_unorm16, true, + "When the host can't write 8 bits per component pixels with piecewise " + "linear gamma encoding directly with correct blending, use the 16-bit " + "unsigned normalized format, if supported, for conceptually correct " + "8_8_8_8_GAMMA render target format blending in linear color space. " + "Greatly increases accuracy for this format, but may result in render " + "target copying costs if the game switches between 8_8_8_8_GAMMA and " + "8_8_8_8 views for the same EDRAM render target.", "GPU"); DEFINE_bool( mrt_edram_used_range_clamp_to_min, true, @@ -635,7 +634,6 @@ bool RenderTargetCache::Update(bool is_rasterization_done, uint32_t edram_bases[1 + xenos::kMaxColorRenderTargets]; uint32_t resource_formats[1 + xenos::kMaxColorRenderTargets]; uint32_t rts_are_64bpp = 0; - uint32_t color_rts_are_gamma = 0; if (is_rasterization_done) { if (normalized_depth_control.z_enable || normalized_depth_control.stencil_enable) { @@ -664,9 +662,6 @@ bool RenderTargetCache::Update(bool is_rasterization_done, if (is_64bpp) { rts_are_64bpp |= uint32_t(1) << rt_bit_index; } - if (color_format == xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA) { - color_rts_are_gamma |= uint32_t(1) << i; - } xenos::ColorRenderTargetFormat color_resource_format; if (interlock_barrier_only) { // Only changes in mapping between coordinates and addresses are @@ -752,7 +747,6 @@ bool RenderTargetCache::Update(bool is_rasterization_done, if (!are_accumulated_render_targets_valid_) { std::memset(last_update_accumulated_render_targets_, 0, sizeof(last_update_accumulated_render_targets_)); - last_update_accumulated_color_targets_are_gamma_ = 0; } return true; } @@ -961,26 +955,13 @@ bool RenderTargetCache::Update(bool is_rasterization_done, std::memcpy(last_update_accumulated_render_targets_, last_update_used_render_targets_, sizeof(last_update_accumulated_render_targets_)); - last_update_accumulated_color_targets_are_gamma_ = 0; are_accumulated_render_targets_valid_ = true; } - // Only update color space of render targets that actually matter here, don't - // disable gamma emulation (which may require ending the render pass) on the - // host, for example, if making a depth-only draw between color draws with a - // gamma target. - uint32_t color_rts_used_bits = depth_and_color_rts_used_bits >> 1; - // Ignore any render targets dropped before in this function for any reason. - color_rts_are_gamma &= color_rts_used_bits; - last_update_accumulated_color_targets_are_gamma_ = - (last_update_accumulated_color_targets_are_gamma_ & - ~color_rts_used_bits) | - color_rts_are_gamma; return true; } uint32_t RenderTargetCache::GetLastUpdateBoundRenderTargets( - bool distinguish_gamma_formats, uint32_t* depth_and_color_formats_out) const { if (GetPath() != Path::kHostRenderTargets) { if (depth_and_color_formats_out) { @@ -1001,12 +982,7 @@ uint32_t RenderTargetCache::GetLastUpdateBoundRenderTargets( } rts_used |= uint32_t(1) << i; if (depth_and_color_formats_out) { - depth_and_color_formats_out[i] = - (distinguish_gamma_formats && i && - (last_update_accumulated_color_targets_are_gamma_ & - (uint32_t(1) << (i - 1)))) - ? uint32_t(xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA) - : render_target->key().resource_format; + depth_and_color_formats_out[i] = render_target->key().resource_format; } } return rts_used; diff --git a/src/xenia/gpu/render_target_cache.h b/src/xenia/gpu/render_target_cache.h index 5353176ed..6adf4f364 100644 --- a/src/xenia/gpu/render_target_cache.h +++ b/src/xenia/gpu/render_target_cache.h @@ -32,7 +32,7 @@ DECLARE_bool(depth_transfer_not_equal_test); DECLARE_bool(depth_float24_round); DECLARE_bool(depth_float24_convert_in_pixel_shader); DECLARE_bool(draw_resolution_scaled_texture_offsets); -DECLARE_bool(gamma_render_target_as_srgb); +DECLARE_bool(gamma_render_target_as_unorm16); DECLARE_bool(native_2x_msaa); DECLARE_bool(native_stencil_value_output); DECLARE_bool(snorm16_render_target_full_range); @@ -72,12 +72,16 @@ class RenderTargetCache { // - 16_16_FLOAT, k_16_16_16_16_FLOAT - the Xenos float16 doesn't have // special values. // Significant differences: - // - 8_8_8_8_GAMMA - the piecewise linear gamma curve is very different than - // sRGB, one possible path is conversion in shaders (resulting in - // incorrect blending, especially visible on decals in 4D5307E6), another - // is using sRGB render targets and either conversion on resolve or - // reading the resolved data as a true sRGB texture (incorrect when the - // game accesses the data directly, like 4541080F). + // - 8_8_8_8_GAMMA - the piecewise linear gamma precision distribution + // encoding is very different from sRGB. Linear space blending can be + // obtained by promoting to R16G16B16A16_UNORM, but for compact storage, + // conversion in pixel shader output may be done, though it results in + // incorrect blending, especially visible on decals in 4D5307E6. Emulating + // by replacing the encoding with sRGB for render target writes and + // resolved texture reads could work for some games, but certain games, + // such as 4541080F, perform piecewise gamma encoding calculations in + // their code, and that produces noticeably incorrect results if the + // encoding is changed in guest texture memory. // - 2_10_10_10_FLOAT - ranges significantly different than in float16, much // smaller RGB range, and alpha is fixed-point and has only 2 bits. // - 16_16, 16_16_16_16 - has -32 to 32 range, not -1 to 1 - need either to @@ -91,28 +95,6 @@ class RenderTargetCache { kPixelShaderInterlock, }; - // Useful host-specific values. - // sRGB conversion from the Direct3D 11.3 functional specification. - static constexpr float kSrgbToLinearDenominator1 = 12.92f; - static constexpr float kSrgbToLinearDenominator2 = 1.055f; - static constexpr float kSrgbToLinearExponent = 2.4f; - static constexpr float kSrgbToLinearOffset = 0.055f; - static constexpr float kSrgbToLinearThreshold = 0.04045f; - static constexpr float SrgbToLinear(float srgb) { - // 0 and 1 must be exactly achievable, also convert NaN to 0. - if (!(srgb > 0.0f)) { - return 0.0f; - } - if (!(srgb < 1.0f)) { - return 1.0f; - } - if (srgb <= kSrgbToLinearThreshold) { - return srgb / kSrgbToLinearDenominator1; - } - return std::pow((srgb + kSrgbToLinearOffset) / kSrgbToLinearDenominator2, - kSrgbToLinearExponent); - } - // Pixel shader interlock implementation helpers. // Appended to the format in the format constant via bitwise OR. @@ -221,7 +203,6 @@ class RenderTargetCache { // formats (resource formats, but if needed, with gamma taken into account) of // each. uint32_t GetLastUpdateBoundRenderTargets( - bool distinguish_gamma_formats, uint32_t* depth_and_color_formats_out = nullptr) const; protected: @@ -238,6 +219,8 @@ class RenderTargetCache { const RegisterFile& register_file() const { return register_file_; } + virtual bool IsGammaFormatHostStorageSeparate() const = 0; + // Call last in implementation-specific initialization (when things like path // are initialized by the implementation). void InitializeCommon(); @@ -274,7 +257,7 @@ class RenderTargetCache { uint32_t pitch_tiles_at_32bpp : 8; // 19 xenos::MsaaSamples msaa_samples : xenos::kMsaaSamplesBits; // 21 uint32_t is_depth : 1; // 22 - // Ignoring the blending precision and sRGB. + // Ignoring the blending precision. uint32_t resource_format : xenos::kRenderTargetFormatBits; // 26 }; @@ -548,10 +531,6 @@ class RenderTargetCache { assert_true(GetPath() == Path::kHostRenderTargets); return last_update_accumulated_render_targets_; } - uint32_t last_update_accumulated_color_targets_are_gamma() const { - assert_true(GetPath() == Path::kHostRenderTargets); - return last_update_accumulated_color_targets_are_gamma_; - } const std::vector* last_update_transfers() const { assert_true(GetPath() == Path::kHostRenderTargets); @@ -697,11 +676,10 @@ class RenderTargetCache { } }; - static constexpr xenos::ColorRenderTargetFormat GetColorResourceFormat( - xenos::ColorRenderTargetFormat format) { - // sRGB, if used on the host, is a view property or global state - linear - // and sRGB host render targets can share data directly without transfers. - if (format == xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA) { + xenos::ColorRenderTargetFormat GetColorResourceFormat( + xenos::ColorRenderTargetFormat format) const { + if (format == xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA && + !IsGammaFormatHostStorageSeparate()) { return xenos::ColorRenderTargetFormat::k_8_8_8_8; } return xenos::GetStorageColorFormat(format); @@ -755,10 +733,6 @@ class RenderTargetCache { RenderTarget* last_update_accumulated_render_targets_[1 + xenos::kMaxColorRenderTargets]; - // Whether the color render targets (in bits 0...3) from the last successful - // update have k_8_8_8_8_GAMMA format, for sRGB emulation on the host if - // needed. - uint32_t last_update_accumulated_color_targets_are_gamma_; // If false, the next update must copy last_update_used_render_targets_ to // last_update_accumulated_render_targets_ - it's not beneficial or even // incorrect to keep the previously bound render targets. diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/adaptive_quad_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/adaptive_quad_hs.h index 9de916831..d081a5657 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/adaptive_quad_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/adaptive_quad_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -137,21 +137,21 @@ ret const BYTE adaptive_quad_hs[] = { - 68, 88, 66, 67, 239, 150, - 141, 161, 148, 167, 208, 252, - 147, 2, 216, 119, 8, 207, - 171, 137, 1, 0, 0, 0, - 40, 15, 0, 0, 6, 0, + 68, 88, 66, 67, 219, 255, + 95, 234, 102, 219, 156, 208, + 233, 150, 227, 140, 59, 51, + 198, 162, 1, 0, 0, 0, + 48, 15, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 164, 10, - 0, 0, 216, 10, 0, 0, - 156, 11, 0, 0, 140, 14, + 116, 10, 0, 0, 172, 10, + 0, 0, 224, 10, 0, 0, + 164, 11, 0, 0, 148, 14, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -271,103 +271,103 @@ const BYTE adaptive_quad_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -480,51 +480,87 @@ const BYTE adaptive_quad_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -533,255 +569,220 @@ const BYTE adaptive_quad_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, - 71, 78, 48, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, - 0, 0, 88, 69, 84, 69, - 83, 83, 70, 65, 67, 84, - 79, 82, 0, 171, 171, 171, - 79, 83, 71, 78, 44, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 48, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 88, 69, - 86, 69, 82, 84, 69, 88, - 73, 68, 0, 171, 80, 67, - 83, 71, 188, 0, 0, 0, - 6, 0, 0, 0, 8, 0, - 0, 0, 152, 0, 0, 0, - 0, 0, 0, 0, 11, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 14, - 0, 0, 152, 0, 0, 0, - 1, 0, 0, 0, 11, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 1, 14, - 0, 0, 152, 0, 0, 0, - 2, 0, 0, 0, 11, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 1, 14, - 0, 0, 152, 0, 0, 0, - 3, 0, 0, 0, 11, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 1, 14, - 0, 0, 166, 0, 0, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 1, 14, - 0, 0, 166, 0, 0, 0, - 1, 0, 0, 0, 12, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 1, 14, - 0, 0, 83, 86, 95, 84, - 101, 115, 115, 70, 97, 99, - 116, 111, 114, 0, 83, 86, - 95, 73, 110, 115, 105, 100, - 101, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 171, 171, 83, 72, 69, 88, - 232, 2, 0, 0, 81, 0, - 3, 0, 186, 0, 0, 0, - 113, 0, 0, 1, 147, 32, - 0, 1, 148, 8, 0, 1, - 149, 24, 0, 1, 150, 32, - 0, 1, 151, 24, 0, 1, - 106, 8, 0, 1, 89, 0, - 0, 7, 70, 142, 48, 0, + 1, 1, 0, 0, 88, 69, + 84, 69, 83, 83, 70, 65, + 67, 84, 79, 82, 0, 171, + 171, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 1, 14, 0, 0, + 88, 69, 86, 69, 82, 84, + 69, 88, 73, 68, 0, 171, + 80, 67, 83, 71, 188, 0, + 0, 0, 6, 0, 0, 0, + 8, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 114, 0, 0, 1, - 95, 0, 0, 2, 0, 176, - 0, 0, 101, 0, 0, 3, - 18, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 30, 0, - 0, 8, 18, 0, 16, 0, - 0, 0, 0, 0, 1, 176, - 0, 0, 26, 128, 48, 0, + 11, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 1, 14, 0, 0, 152, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 7, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 255, 255, 255, 0, 83, 0, - 0, 9, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 11, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 1, 14, 0, 0, 152, 0, + 0, 0, 2, 0, 0, 0, + 11, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 1, 14, 0, 0, 152, 0, + 0, 0, 3, 0, 0, 0, + 11, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 1, 14, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 84, 0, - 0, 9, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 58, 128, 48, 0, 0, 0, + 12, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 1, 14, 0, 0, 166, 0, + 0, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 1, 14, 0, 0, 83, 86, + 95, 84, 101, 115, 115, 70, + 97, 99, 116, 111, 114, 0, + 83, 86, 95, 73, 110, 115, + 105, 100, 101, 84, 101, 115, + 115, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 83, 72, + 69, 88, 232, 2, 0, 0, + 81, 0, 3, 0, 186, 0, + 0, 0, 113, 0, 0, 1, + 147, 32, 0, 1, 148, 8, + 0, 1, 149, 24, 0, 1, + 150, 32, 0, 1, 151, 24, + 0, 1, 106, 8, 0, 1, + 89, 0, 0, 7, 70, 142, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 86, 0, - 0, 5, 18, 32, 16, 0, - 0, 0, 0, 0, 10, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 114, 0, + 0, 1, 95, 0, 0, 2, + 0, 176, 0, 0, 101, 0, + 0, 3, 18, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 30, 0, 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 153, 0, 0, 2, - 4, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 95, 0, 0, 4, 18, 144, - 33, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 103, 0, - 0, 4, 18, 32, 16, 0, - 0, 0, 0, 0, 11, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 2, 0, 0, 0, - 13, 0, 0, 0, 103, 0, - 0, 4, 18, 32, 16, 0, - 3, 0, 0, 0, 14, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 91, 0, - 0, 4, 18, 32, 16, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 30, 0, 0, 6, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 112, 1, 0, - 1, 64, 0, 0, 3, 0, + 1, 176, 0, 0, 26, 128, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 4, 34, 0, + 0, 0, 255, 255, 255, 0, + 83, 0, 0, 9, 18, 0, 16, 0, 0, 0, 0, 0, - 10, 112, 1, 0, 54, 0, - 0, 8, 18, 32, 144, 0, - 26, 0, 16, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 84, 0, 0, 9, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 58, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 86, 0, 0, 5, 18, 32, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 153, 0, + 0, 2, 4, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 95, 0, 0, 4, + 18, 144, 33, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 1, 0, 0, 0, 12, 0, + 0, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 2, 0, + 0, 0, 13, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 3, 0, 0, 0, + 14, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 91, 0, 0, 4, 18, 32, + 16, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 30, 0, + 0, 6, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 112, + 1, 0, 1, 64, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 4, + 34, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 8, 18, 32, + 144, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 10, 144, + 161, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 153, 0, + 0, 2, 2, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 95, 0, 0, 4, + 18, 144, 33, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 4, 0, 0, 0, + 15, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 5, 0, 0, 0, 16, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 4, 0, 0, 0, 2, 0, + 0, 0, 79, 0, 0, 6, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 1, 64, 0, 0, 1, 0, + 0, 0, 55, 0, 0, 9, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 3, 0, + 0, 0, 40, 0, 0, 4, + 34, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 51, 0, 0, 12, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 144, 225, 0, 2, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 144, 161, 0, 10, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 153, 0, 0, 2, - 2, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 95, 0, 0, 4, 18, 144, - 33, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 103, 0, - 0, 4, 18, 32, 16, 0, - 4, 0, 0, 0, 15, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 5, 0, - 0, 0, 16, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 79, 0, 0, 6, 18, 0, + 54, 0, 0, 4, 34, 0, 16, 0, 0, 0, 0, 0, - 10, 112, 1, 0, 1, 64, - 0, 0, 1, 0, 0, 0, - 55, 0, 0, 9, 18, 0, + 10, 112, 1, 0, 54, 0, + 0, 7, 18, 32, 208, 0, + 4, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 3, 0, 0, 0, - 40, 0, 0, 4, 34, 0, - 16, 0, 0, 0, 0, 0, - 10, 112, 1, 0, 51, 0, - 0, 12, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 144, - 225, 0, 2, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 10, 144, 161, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 4, 34, 0, 16, 0, - 0, 0, 0, 0, 10, 112, - 1, 0, 54, 0, 0, 7, - 18, 32, 208, 0, 4, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 148, 0, 0, 0, - 18, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 1, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 148, 0, + 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/adaptive_triangle_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/adaptive_triangle_hs.h index 2a7f73920..424e062f3 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/adaptive_triangle_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/adaptive_triangle_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -126,21 +126,21 @@ ret const BYTE adaptive_triangle_hs[] = { - 68, 88, 66, 67, 213, 151, - 26, 214, 48, 115, 215, 10, - 67, 36, 129, 21, 5, 111, - 231, 249, 1, 0, 0, 0, - 88, 14, 0, 0, 6, 0, + 68, 88, 66, 67, 119, 178, + 165, 28, 236, 219, 246, 2, + 103, 49, 167, 10, 199, 138, + 243, 175, 1, 0, 0, 0, + 96, 14, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 164, 10, - 0, 0, 216, 10, 0, 0, - 108, 11, 0, 0, 188, 13, + 116, 10, 0, 0, 172, 10, + 0, 0, 224, 10, 0, 0, + 116, 11, 0, 0, 196, 13, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -260,103 +260,103 @@ const BYTE adaptive_triangle_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -469,51 +469,87 @@ const BYTE adaptive_triangle_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -522,220 +558,186 @@ const BYTE adaptive_triangle_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, - 71, 78, 48, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, - 0, 0, 88, 69, 84, 69, - 83, 83, 70, 65, 67, 84, - 79, 82, 0, 171, 171, 171, - 79, 83, 71, 78, 44, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 48, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 88, 69, - 86, 69, 82, 84, 69, 88, - 73, 68, 0, 171, 80, 67, - 83, 71, 140, 0, 0, 0, - 4, 0, 0, 0, 8, 0, - 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 13, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 14, - 0, 0, 104, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 1, 14, - 0, 0, 104, 0, 0, 0, - 2, 0, 0, 0, 13, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 1, 14, - 0, 0, 118, 0, 0, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 1, 14, - 0, 0, 83, 86, 95, 84, - 101, 115, 115, 70, 97, 99, - 116, 111, 114, 0, 83, 86, - 95, 73, 110, 115, 105, 100, - 101, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 171, 171, 83, 72, 69, 88, - 72, 2, 0, 0, 81, 0, - 3, 0, 146, 0, 0, 0, - 113, 0, 0, 1, 147, 24, - 0, 1, 148, 8, 0, 1, - 149, 16, 0, 1, 150, 32, - 0, 1, 151, 24, 0, 1, - 106, 8, 0, 1, 89, 0, - 0, 7, 70, 142, 48, 0, + 1, 1, 0, 0, 88, 69, + 84, 69, 83, 83, 70, 65, + 67, 84, 79, 82, 0, 171, + 171, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 1, 14, 0, 0, + 88, 69, 86, 69, 82, 84, + 69, 88, 73, 68, 0, 171, + 80, 67, 83, 71, 140, 0, + 0, 0, 4, 0, 0, 0, + 8, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 114, 0, 0, 1, - 95, 0, 0, 2, 0, 176, - 0, 0, 101, 0, 0, 3, - 18, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 30, 0, - 0, 8, 18, 0, 16, 0, - 0, 0, 0, 0, 1, 176, - 0, 0, 26, 128, 48, 0, + 13, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 1, 14, 0, 0, 104, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 7, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 255, 255, 255, 0, 83, 0, - 0, 9, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 13, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 1, 14, 0, 0, 104, 0, + 0, 0, 2, 0, 0, 0, + 13, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 1, 14, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 84, 0, - 0, 9, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 58, 128, 48, 0, 0, 0, + 14, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 1, 14, 0, 0, 83, 86, + 95, 84, 101, 115, 115, 70, + 97, 99, 116, 111, 114, 0, + 83, 86, 95, 73, 110, 115, + 105, 100, 101, 84, 101, 115, + 115, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 83, 72, + 69, 88, 72, 2, 0, 0, + 81, 0, 3, 0, 146, 0, + 0, 0, 113, 0, 0, 1, + 147, 24, 0, 1, 148, 8, + 0, 1, 149, 16, 0, 1, + 150, 32, 0, 1, 151, 24, + 0, 1, 106, 8, 0, 1, + 89, 0, 0, 7, 70, 142, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 86, 0, - 0, 5, 18, 32, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 153, 0, 0, 2, - 3, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 95, 0, 0, 4, 18, 144, - 33, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 103, 0, - 0, 4, 18, 32, 16, 0, - 0, 0, 0, 0, 17, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 1, 0, - 0, 0, 18, 0, 0, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 2, 0, 0, 0, - 19, 0, 0, 0, 104, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 114, 0, + 0, 1, 95, 0, 0, 2, + 0, 176, 0, 0, 101, 0, + 0, 3, 18, 32, 16, 0, + 0, 0, 0, 0, 104, 0, 0, 2, 1, 0, 0, 0, - 91, 0, 0, 4, 18, 32, + 30, 0, 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 30, 0, - 0, 6, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 112, - 1, 0, 1, 64, 0, 0, - 1, 0, 0, 0, 78, 0, - 0, 8, 0, 208, 0, 0, + 1, 176, 0, 0, 26, 128, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 4, 34, 0, + 0, 0, 255, 255, 255, 0, + 83, 0, 0, 9, 18, 0, 16, 0, 0, 0, 0, 0, - 10, 112, 1, 0, 54, 0, - 0, 8, 18, 32, 144, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 10, 144, 161, 0, 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 95, 0, 0, 4, + 0, 0, 1, 0, 0, 0, + 84, 0, 0, 9, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 58, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 86, 0, 0, 5, 18, 32, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 153, 0, + 0, 2, 3, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 95, 0, 0, 4, 18, 144, 33, 0, 3, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 4, 18, 32, - 16, 0, 3, 0, 0, 0, - 20, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 51, 0, 0, 9, 18, 0, 16, 0, 0, 0, 0, 0, - 10, 144, 33, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 10, 144, 33, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 51, 0, 0, 8, 18, 32, - 16, 0, 3, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 10, 144, 33, 0, + 17, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 1, 0, 0, 0, 18, 0, + 0, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 2, 0, + 0, 0, 19, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 91, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 30, 0, 0, 6, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 112, 1, 0, 1, 64, + 0, 0, 1, 0, 0, 0, + 78, 0, 0, 8, 0, 208, + 0, 0, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 4, + 34, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 8, 18, 32, + 144, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 10, 144, + 161, 0, 10, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 148, 0, - 0, 0, 14, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 2, 0, 0, 0, 2, 0, - 0, 0, 4, 0, 0, 0, + 115, 0, 0, 1, 95, 0, + 0, 4, 18, 144, 33, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 3, 0, + 0, 0, 20, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 51, 0, 0, 9, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 144, 33, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 10, 144, 33, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 51, 0, 0, 8, + 18, 32, 16, 0, 3, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 10, 144, + 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 148, 0, 0, 0, 14, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 10, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_1cp_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_1cp_hs.h index 24e011399..3440f61ef 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_1cp_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_1cp_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -124,21 +124,21 @@ ret const BYTE continuous_quad_1cp_hs[] = { - 68, 88, 66, 67, 255, 166, - 36, 40, 167, 89, 99, 45, - 74, 91, 165, 30, 112, 56, - 14, 246, 1, 0, 0, 0, - 220, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 75, 3, + 204, 69, 118, 69, 237, 244, + 19, 228, 4, 30, 244, 91, + 101, 237, 1, 0, 0, 0, + 228, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 160, 10, - 0, 0, 212, 10, 0, 0, - 152, 11, 0, 0, 64, 13, + 116, 10, 0, 0, 168, 10, + 0, 0, 220, 10, 0, 0, + 160, 11, 0, 0, 72, 13, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -258,103 +258,103 @@ const BYTE continuous_quad_1cp_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -467,51 +467,87 @@ const BYTE continuous_quad_1cp_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -520,200 +556,165 @@ const BYTE continuous_quad_1cp_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, + 1, 1, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 14, 0, 0, 88, 69, 86, 69, 82, 84, 69, 88, 73, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 171, 80, 67, 83, 71, + 188, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, - 88, 69, 86, 69, 82, 84, - 69, 88, 73, 68, 0, 171, - 80, 67, 83, 71, 188, 0, - 0, 0, 6, 0, 0, 0, - 8, 0, 0, 0, 152, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 2, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 3, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 14, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 1, 14, 0, 0, 166, 0, - 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 5, 0, 0, 0, - 1, 14, 0, 0, 83, 86, - 95, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 83, 86, 95, 73, 110, 115, - 105, 100, 101, 84, 101, 115, + 152, 0, 0, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 1, 14, 0, 0, + 152, 0, 0, 0, 2, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 14, 0, 0, + 152, 0, 0, 0, 3, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 14, 0, 0, + 166, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 1, 14, 0, 0, + 166, 0, 0, 0, 1, 0, + 0, 0, 12, 0, 0, 0, + 3, 0, 0, 0, 5, 0, + 0, 0, 1, 14, 0, 0, + 83, 86, 95, 84, 101, 115, 115, 70, 97, 99, 116, 111, - 114, 0, 171, 171, 83, 72, - 69, 88, 160, 1, 0, 0, - 81, 0, 3, 0, 104, 0, - 0, 0, 113, 0, 0, 1, - 147, 8, 0, 1, 148, 8, - 0, 1, 149, 24, 0, 1, - 150, 32, 0, 1, 151, 24, - 0, 1, 106, 8, 0, 1, - 89, 0, 0, 7, 70, 142, - 48, 0, 0, 0, 0, 0, + 114, 0, 83, 86, 95, 73, + 110, 115, 105, 100, 101, 84, + 101, 115, 115, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 83, 72, 69, 88, 160, 1, + 0, 0, 81, 0, 3, 0, + 104, 0, 0, 0, 113, 0, + 0, 1, 147, 8, 0, 1, + 148, 8, 0, 1, 149, 24, + 0, 1, 150, 32, 0, 1, + 151, 24, 0, 1, 106, 8, + 0, 1, 89, 0, 0, 7, + 70, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 114, 0, - 0, 1, 95, 0, 0, 4, - 18, 16, 32, 0, 1, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 18, 32, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 18, 32, - 16, 0, 0, 0, 0, 0, - 10, 16, 32, 0, 0, 0, + 114, 0, 0, 1, 95, 0, + 0, 4, 18, 16, 32, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 18, 32, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 18, 32, 16, 0, 0, 0, + 0, 0, 10, 16, 32, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 153, 0, 0, 2, - 4, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 153, 0, + 0, 2, 4, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 103, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 103, 0, + 16, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 103, 0, 0, 4, 18, 32, 16, 0, - 1, 0, 0, 0, 12, 0, + 2, 0, 0, 0, 13, 0, 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 2, 0, - 0, 0, 13, 0, 0, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 3, 0, 0, 0, - 14, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 91, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 54, 0, - 0, 4, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 112, - 1, 0, 54, 0, 0, 8, - 18, 32, 144, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 115, 0, 0, 1, - 153, 0, 0, 2, 2, 0, - 0, 0, 95, 0, 0, 2, - 0, 112, 1, 0, 103, 0, - 0, 4, 18, 32, 16, 0, - 4, 0, 0, 0, 15, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 5, 0, - 0, 0, 16, 0, 0, 0, + 18, 32, 16, 0, 3, 0, + 0, 0, 14, 0, 0, 0, 104, 0, 0, 2, 1, 0, 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 4, 0, - 0, 0, 2, 0, 0, 0, + 18, 32, 16, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 54, 0, 0, 4, 18, 0, 16, 0, 0, 0, 0, 0, 10, 112, 1, 0, 54, 0, - 0, 9, 18, 32, 208, 0, - 4, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 0, 8, 18, 32, 144, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 115, 0, + 0, 1, 153, 0, 0, 2, + 2, 0, 0, 0, 95, 0, + 0, 2, 0, 112, 1, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 4, 0, 0, 0, + 15, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 5, 0, 0, 0, 16, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 4, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 4, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 9, 18, 32, + 208, 0, 4, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 8, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 8, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_4cp_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_4cp_hs.h index d5b9c9482..a7aeda60d 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_4cp_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_4cp_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -119,21 +119,21 @@ ret const BYTE continuous_quad_4cp_hs[] = { - 68, 88, 66, 67, 196, 234, - 51, 156, 242, 124, 98, 132, - 34, 110, 229, 40, 64, 181, - 146, 55, 1, 0, 0, 0, - 160, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 6, 62, + 31, 216, 142, 131, 210, 70, + 184, 74, 84, 23, 232, 171, + 185, 244, 1, 0, 0, 0, + 168, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 160, 10, - 0, 0, 212, 10, 0, 0, - 152, 11, 0, 0, 4, 13, + 116, 10, 0, 0, 168, 10, + 0, 0, 220, 10, 0, 0, + 160, 11, 0, 0, 12, 13, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -253,103 +253,103 @@ const BYTE continuous_quad_4cp_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -462,51 +462,87 @@ const BYTE continuous_quad_4cp_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -515,190 +551,155 @@ const BYTE continuous_quad_4cp_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, + 1, 1, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 14, 0, 0, 88, 69, 86, 69, 82, 84, 69, 88, 73, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 171, 80, 67, 83, 71, + 188, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, - 88, 69, 86, 69, 82, 84, - 69, 88, 73, 68, 0, 171, - 80, 67, 83, 71, 188, 0, - 0, 0, 6, 0, 0, 0, - 8, 0, 0, 0, 152, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 2, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 3, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 14, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 1, 14, 0, 0, 166, 0, - 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 5, 0, 0, 0, - 1, 14, 0, 0, 83, 86, - 95, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 83, 86, 95, 73, 110, 115, - 105, 100, 101, 84, 101, 115, + 152, 0, 0, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 1, 14, 0, 0, + 152, 0, 0, 0, 2, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 14, 0, 0, + 152, 0, 0, 0, 3, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 14, 0, 0, + 166, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 1, 14, 0, 0, + 166, 0, 0, 0, 1, 0, + 0, 0, 12, 0, 0, 0, + 3, 0, 0, 0, 5, 0, + 0, 0, 1, 14, 0, 0, + 83, 86, 95, 84, 101, 115, 115, 70, 97, 99, 116, 111, - 114, 0, 171, 171, 83, 72, - 69, 88, 100, 1, 0, 0, - 81, 0, 3, 0, 89, 0, - 0, 0, 113, 0, 0, 1, - 147, 32, 0, 1, 148, 32, - 0, 1, 149, 24, 0, 1, - 150, 32, 0, 1, 151, 24, - 0, 1, 106, 8, 0, 1, - 89, 0, 0, 7, 70, 142, - 48, 0, 0, 0, 0, 0, + 114, 0, 83, 86, 95, 73, + 110, 115, 105, 100, 101, 84, + 101, 115, 115, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 83, 72, 69, 88, 100, 1, + 0, 0, 81, 0, 3, 0, + 89, 0, 0, 0, 113, 0, + 0, 1, 147, 32, 0, 1, + 148, 32, 0, 1, 149, 24, + 0, 1, 150, 32, 0, 1, + 151, 24, 0, 1, 106, 8, + 0, 1, 89, 0, 0, 7, + 70, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 0, - 0, 1, 153, 0, 0, 2, - 4, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 103, 0, - 0, 4, 18, 32, 16, 0, - 1, 0, 0, 0, 12, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 2, 0, - 0, 0, 13, 0, 0, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 3, 0, 0, 0, - 14, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 91, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 54, 0, - 0, 4, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 112, - 1, 0, 54, 0, 0, 8, - 18, 32, 144, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 115, 0, 0, 1, - 153, 0, 0, 2, 2, 0, - 0, 0, 95, 0, 0, 2, - 0, 112, 1, 0, 103, 0, + 115, 0, 0, 1, 153, 0, + 0, 2, 4, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 103, 0, 0, 4, 18, 32, 16, 0, - 4, 0, 0, 0, 15, 0, + 2, 0, 0, 0, 13, 0, 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 5, 0, - 0, 0, 16, 0, 0, 0, + 18, 32, 16, 0, 3, 0, + 0, 0, 14, 0, 0, 0, 104, 0, 0, 2, 1, 0, 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 4, 0, - 0, 0, 2, 0, 0, 0, + 18, 32, 16, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 54, 0, 0, 4, 18, 0, 16, 0, 0, 0, 0, 0, 10, 112, 1, 0, 54, 0, - 0, 9, 18, 32, 208, 0, - 4, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 6, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 5, 0, + 0, 8, 18, 32, 144, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 115, 0, + 0, 1, 153, 0, 0, 2, + 2, 0, 0, 0, 95, 0, + 0, 2, 0, 112, 1, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 4, 0, 0, 0, + 15, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 5, 0, 0, 0, 16, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 4, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 4, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 9, 18, 32, + 208, 0, 4, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 6, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, - 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_1cp_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_1cp_hs.h index fe4cd78fa..7fd8c6382 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_1cp_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_1cp_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -115,21 +115,21 @@ ret const BYTE continuous_triangle_1cp_hs[] = { - 68, 88, 66, 67, 90, 24, - 246, 119, 168, 170, 239, 21, - 106, 76, 181, 188, 133, 81, - 250, 172, 1, 0, 0, 0, - 76, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 7, 179, + 83, 139, 111, 125, 9, 167, + 130, 181, 49, 127, 87, 182, + 14, 89, 1, 0, 0, 0, + 84, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 160, 10, - 0, 0, 212, 10, 0, 0, - 104, 11, 0, 0, 176, 12, + 116, 10, 0, 0, 168, 10, + 0, 0, 220, 10, 0, 0, + 112, 11, 0, 0, 184, 12, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -249,103 +249,103 @@ const BYTE continuous_triangle_1cp_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -458,51 +458,87 @@ const BYTE continuous_triangle_1cp_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -511,176 +547,141 @@ const BYTE continuous_triangle_1cp_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, + 1, 1, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 14, 0, 0, 88, 69, 86, 69, 82, 84, 69, 88, 73, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 171, 80, 67, 83, 71, + 140, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, - 88, 69, 86, 69, 82, 84, - 69, 88, 73, 68, 0, 171, - 80, 67, 83, 71, 140, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 1, 14, 0, 0, 104, 0, - 0, 0, 2, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 1, 14, 0, 0, 118, 0, - 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 14, 0, 0, 83, 86, - 95, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 83, 86, 95, 73, 110, 115, - 105, 100, 101, 84, 101, 115, + 104, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 1, 14, 0, 0, + 104, 0, 0, 0, 2, 0, + 0, 0, 13, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 14, 0, 0, + 118, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 14, 0, 0, + 83, 86, 95, 84, 101, 115, 115, 70, 97, 99, 116, 111, - 114, 0, 171, 171, 83, 72, - 69, 88, 64, 1, 0, 0, - 81, 0, 3, 0, 80, 0, - 0, 0, 113, 0, 0, 1, - 147, 8, 0, 1, 148, 8, - 0, 1, 149, 16, 0, 1, - 150, 32, 0, 1, 151, 24, - 0, 1, 106, 8, 0, 1, - 89, 0, 0, 7, 70, 142, + 114, 0, 83, 86, 95, 73, + 110, 115, 105, 100, 101, 84, + 101, 115, 115, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 83, 72, 69, 88, 64, 1, + 0, 0, 81, 0, 3, 0, + 80, 0, 0, 0, 113, 0, + 0, 1, 147, 8, 0, 1, + 148, 8, 0, 1, 149, 16, + 0, 1, 150, 32, 0, 1, + 151, 24, 0, 1, 106, 8, + 0, 1, 89, 0, 0, 7, + 70, 142, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 114, 0, 0, 1, 95, 0, + 0, 4, 18, 16, 32, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 18, 32, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 18, 32, 16, 0, 0, 0, + 0, 0, 10, 16, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 153, 0, + 0, 2, 3, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 1, 0, 0, 0, + 18, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 2, 0, 0, 0, 19, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 4, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 8, 18, 32, + 144, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 114, 0, - 0, 1, 95, 0, 0, 4, - 18, 16, 32, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 18, 32, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 18, 32, - 16, 0, 0, 0, 0, 0, - 10, 16, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 153, 0, 0, 2, - 3, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 103, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 103, 0, 0, 4, 18, 32, 16, 0, - 1, 0, 0, 0, 18, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 2, 0, - 0, 0, 19, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 4, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 112, 1, 0, 54, 0, - 0, 8, 18, 32, 144, 0, - 10, 0, 16, 0, 0, 0, + 3, 0, 0, 0, 20, 0, + 0, 0, 54, 0, 0, 7, + 18, 32, 16, 0, 3, 0, 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 103, 0, 0, 4, - 18, 32, 16, 0, 3, 0, - 0, 0, 20, 0, 0, 0, - 54, 0, 0, 7, 18, 32, - 16, 0, 3, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 7, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 7, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_3cp_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_3cp_hs.h index 18e207dd2..c80b18a5d 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_3cp_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_3cp_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -110,21 +110,21 @@ ret const BYTE continuous_triangle_3cp_hs[] = { - 68, 88, 66, 67, 40, 16, - 64, 130, 119, 149, 137, 0, - 58, 149, 234, 138, 51, 145, - 29, 76, 1, 0, 0, 0, - 16, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 231, 10, + 78, 117, 211, 32, 114, 128, + 168, 236, 27, 22, 27, 130, + 116, 185, 1, 0, 0, 0, + 24, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 160, 10, - 0, 0, 212, 10, 0, 0, - 104, 11, 0, 0, 116, 12, + 116, 10, 0, 0, 168, 10, + 0, 0, 220, 10, 0, 0, + 112, 11, 0, 0, 124, 12, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -244,103 +244,103 @@ const BYTE continuous_triangle_3cp_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -453,51 +453,87 @@ const BYTE continuous_triangle_3cp_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -506,166 +542,131 @@ const BYTE continuous_triangle_3cp_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, + 1, 1, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 14, 0, 0, 88, 69, 86, 69, 82, 84, 69, 88, 73, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 171, 80, 67, 83, 71, + 140, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, - 88, 69, 86, 69, 82, 84, - 69, 88, 73, 68, 0, 171, - 80, 67, 83, 71, 140, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 1, 14, 0, 0, 104, 0, - 0, 0, 2, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 1, 14, 0, 0, 118, 0, - 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 14, 0, 0, 83, 86, - 95, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 83, 86, 95, 73, 110, 115, - 105, 100, 101, 84, 101, 115, + 104, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 1, 14, 0, 0, + 104, 0, 0, 0, 2, 0, + 0, 0, 13, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 14, 0, 0, + 118, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 14, 0, 0, + 83, 86, 95, 84, 101, 115, 115, 70, 97, 99, 116, 111, - 114, 0, 171, 171, 83, 72, - 69, 88, 4, 1, 0, 0, - 81, 0, 3, 0, 65, 0, - 0, 0, 113, 0, 0, 1, - 147, 24, 0, 1, 148, 24, - 0, 1, 149, 16, 0, 1, - 150, 32, 0, 1, 151, 24, - 0, 1, 106, 8, 0, 1, - 89, 0, 0, 7, 70, 142, + 114, 0, 83, 86, 95, 73, + 110, 115, 105, 100, 101, 84, + 101, 115, 115, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 83, 72, 69, 88, 4, 1, + 0, 0, 81, 0, 3, 0, + 65, 0, 0, 0, 113, 0, + 0, 1, 147, 24, 0, 1, + 148, 24, 0, 1, 149, 16, + 0, 1, 150, 32, 0, 1, + 151, 24, 0, 1, 106, 8, + 0, 1, 89, 0, 0, 7, + 70, 142, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 115, 0, 0, 1, 153, 0, + 0, 2, 3, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 1, 0, 0, 0, + 18, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 2, 0, 0, 0, 19, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 4, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 8, 18, 32, + 144, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 0, - 0, 1, 153, 0, 0, 2, - 3, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 103, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 103, 0, 0, 4, 18, 32, 16, 0, - 1, 0, 0, 0, 18, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 2, 0, - 0, 0, 19, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 4, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 112, 1, 0, 54, 0, - 0, 8, 18, 32, 144, 0, - 10, 0, 16, 0, 0, 0, + 3, 0, 0, 0, 20, 0, + 0, 0, 54, 0, 0, 7, + 18, 32, 16, 0, 3, 0, 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 103, 0, 0, 4, - 18, 32, 16, 0, 3, 0, - 0, 0, 20, 0, 0, 0, - 54, 0, 0, 7, 18, 32, - 16, 0, 3, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 5, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 4, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_1cp_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_1cp_hs.h index 1ee226351..47cf4ef58 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_1cp_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_1cp_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -124,21 +124,21 @@ ret const BYTE discrete_quad_1cp_hs[] = { - 68, 88, 66, 67, 166, 226, - 56, 134, 119, 149, 47, 144, - 135, 3, 42, 236, 243, 129, - 164, 56, 1, 0, 0, 0, - 220, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 42, 101, + 116, 28, 76, 214, 165, 58, + 178, 236, 109, 197, 185, 155, + 144, 115, 1, 0, 0, 0, + 228, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 160, 10, - 0, 0, 212, 10, 0, 0, - 152, 11, 0, 0, 64, 13, + 116, 10, 0, 0, 168, 10, + 0, 0, 220, 10, 0, 0, + 160, 11, 0, 0, 72, 13, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -258,103 +258,103 @@ const BYTE discrete_quad_1cp_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -467,51 +467,87 @@ const BYTE discrete_quad_1cp_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -520,200 +556,165 @@ const BYTE discrete_quad_1cp_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, + 1, 1, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 14, 0, 0, 88, 69, 86, 69, 82, 84, 69, 88, 73, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 171, 80, 67, 83, 71, + 188, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, - 88, 69, 86, 69, 82, 84, - 69, 88, 73, 68, 0, 171, - 80, 67, 83, 71, 188, 0, - 0, 0, 6, 0, 0, 0, - 8, 0, 0, 0, 152, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 2, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 3, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 14, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 1, 14, 0, 0, 166, 0, - 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 5, 0, 0, 0, - 1, 14, 0, 0, 83, 86, - 95, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 83, 86, 95, 73, 110, 115, - 105, 100, 101, 84, 101, 115, + 152, 0, 0, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 1, 14, 0, 0, + 152, 0, 0, 0, 2, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 14, 0, 0, + 152, 0, 0, 0, 3, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 14, 0, 0, + 166, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 1, 14, 0, 0, + 166, 0, 0, 0, 1, 0, + 0, 0, 12, 0, 0, 0, + 3, 0, 0, 0, 5, 0, + 0, 0, 1, 14, 0, 0, + 83, 86, 95, 84, 101, 115, 115, 70, 97, 99, 116, 111, - 114, 0, 171, 171, 83, 72, - 69, 88, 160, 1, 0, 0, - 81, 0, 3, 0, 104, 0, - 0, 0, 113, 0, 0, 1, - 147, 8, 0, 1, 148, 8, - 0, 1, 149, 24, 0, 1, - 150, 8, 0, 1, 151, 24, - 0, 1, 106, 8, 0, 1, - 89, 0, 0, 7, 70, 142, - 48, 0, 0, 0, 0, 0, + 114, 0, 83, 86, 95, 73, + 110, 115, 105, 100, 101, 84, + 101, 115, 115, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 83, 72, 69, 88, 160, 1, + 0, 0, 81, 0, 3, 0, + 104, 0, 0, 0, 113, 0, + 0, 1, 147, 8, 0, 1, + 148, 8, 0, 1, 149, 24, + 0, 1, 150, 8, 0, 1, + 151, 24, 0, 1, 106, 8, + 0, 1, 89, 0, 0, 7, + 70, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 114, 0, - 0, 1, 95, 0, 0, 4, - 18, 16, 32, 0, 1, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 18, 32, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 18, 32, - 16, 0, 0, 0, 0, 0, - 10, 16, 32, 0, 0, 0, + 114, 0, 0, 1, 95, 0, + 0, 4, 18, 16, 32, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 18, 32, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 18, 32, 16, 0, 0, 0, + 0, 0, 10, 16, 32, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 153, 0, 0, 2, - 4, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 153, 0, + 0, 2, 4, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 103, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 103, 0, + 16, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 103, 0, 0, 4, 18, 32, 16, 0, - 1, 0, 0, 0, 12, 0, + 2, 0, 0, 0, 13, 0, 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 2, 0, - 0, 0, 13, 0, 0, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 3, 0, 0, 0, - 14, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 91, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 54, 0, - 0, 4, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 112, - 1, 0, 54, 0, 0, 8, - 18, 32, 144, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 115, 0, 0, 1, - 153, 0, 0, 2, 2, 0, - 0, 0, 95, 0, 0, 2, - 0, 112, 1, 0, 103, 0, - 0, 4, 18, 32, 16, 0, - 4, 0, 0, 0, 15, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 5, 0, - 0, 0, 16, 0, 0, 0, + 18, 32, 16, 0, 3, 0, + 0, 0, 14, 0, 0, 0, 104, 0, 0, 2, 1, 0, 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 4, 0, - 0, 0, 2, 0, 0, 0, + 18, 32, 16, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 54, 0, 0, 4, 18, 0, 16, 0, 0, 0, 0, 0, 10, 112, 1, 0, 54, 0, - 0, 9, 18, 32, 208, 0, - 4, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 0, 8, 18, 32, 144, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 115, 0, + 0, 1, 153, 0, 0, 2, + 2, 0, 0, 0, 95, 0, + 0, 2, 0, 112, 1, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 4, 0, 0, 0, + 15, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 5, 0, 0, 0, 16, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 4, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 4, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 9, 18, 32, + 208, 0, 4, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 8, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 8, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_4cp_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_4cp_hs.h index 5c1bff113..fa1f2e0d7 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_4cp_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_4cp_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -119,21 +119,21 @@ ret const BYTE discrete_quad_4cp_hs[] = { - 68, 88, 66, 67, 192, 34, - 77, 20, 70, 107, 155, 33, - 163, 40, 168, 219, 244, 3, - 133, 198, 1, 0, 0, 0, - 160, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 158, 194, + 46, 27, 202, 133, 207, 72, + 70, 10, 181, 145, 243, 232, + 70, 63, 1, 0, 0, 0, + 168, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 160, 10, - 0, 0, 212, 10, 0, 0, - 152, 11, 0, 0, 4, 13, + 116, 10, 0, 0, 168, 10, + 0, 0, 220, 10, 0, 0, + 160, 11, 0, 0, 12, 13, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -253,103 +253,103 @@ const BYTE discrete_quad_4cp_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -462,51 +462,87 @@ const BYTE discrete_quad_4cp_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -515,190 +551,155 @@ const BYTE discrete_quad_4cp_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, + 1, 1, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 14, 0, 0, 88, 69, 86, 69, 82, 84, 69, 88, 73, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 171, 80, 67, 83, 71, + 188, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, - 88, 69, 86, 69, 82, 84, - 69, 88, 73, 68, 0, 171, - 80, 67, 83, 71, 188, 0, - 0, 0, 6, 0, 0, 0, - 8, 0, 0, 0, 152, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 2, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 1, 14, 0, 0, 152, 0, - 0, 0, 3, 0, 0, 0, - 11, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 14, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 1, 14, 0, 0, 166, 0, - 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 5, 0, 0, 0, - 1, 14, 0, 0, 83, 86, - 95, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 83, 86, 95, 73, 110, 115, - 105, 100, 101, 84, 101, 115, + 152, 0, 0, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 1, 14, 0, 0, + 152, 0, 0, 0, 2, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 14, 0, 0, + 152, 0, 0, 0, 3, 0, + 0, 0, 11, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 14, 0, 0, + 166, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 1, 14, 0, 0, + 166, 0, 0, 0, 1, 0, + 0, 0, 12, 0, 0, 0, + 3, 0, 0, 0, 5, 0, + 0, 0, 1, 14, 0, 0, + 83, 86, 95, 84, 101, 115, 115, 70, 97, 99, 116, 111, - 114, 0, 171, 171, 83, 72, - 69, 88, 100, 1, 0, 0, - 81, 0, 3, 0, 89, 0, - 0, 0, 113, 0, 0, 1, - 147, 32, 0, 1, 148, 32, - 0, 1, 149, 24, 0, 1, - 150, 8, 0, 1, 151, 24, - 0, 1, 106, 8, 0, 1, - 89, 0, 0, 7, 70, 142, - 48, 0, 0, 0, 0, 0, + 114, 0, 83, 86, 95, 73, + 110, 115, 105, 100, 101, 84, + 101, 115, 115, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 83, 72, 69, 88, 100, 1, + 0, 0, 81, 0, 3, 0, + 89, 0, 0, 0, 113, 0, + 0, 1, 147, 32, 0, 1, + 148, 32, 0, 1, 149, 24, + 0, 1, 150, 8, 0, 1, + 151, 24, 0, 1, 106, 8, + 0, 1, 89, 0, 0, 7, + 70, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 0, - 0, 1, 153, 0, 0, 2, - 4, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 103, 0, - 0, 4, 18, 32, 16, 0, - 1, 0, 0, 0, 12, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 2, 0, - 0, 0, 13, 0, 0, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 3, 0, 0, 0, - 14, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 91, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 54, 0, - 0, 4, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 112, - 1, 0, 54, 0, 0, 8, - 18, 32, 144, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 115, 0, 0, 1, - 153, 0, 0, 2, 2, 0, - 0, 0, 95, 0, 0, 2, - 0, 112, 1, 0, 103, 0, + 115, 0, 0, 1, 153, 0, + 0, 2, 4, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 103, 0, 0, 4, 18, 32, 16, 0, - 4, 0, 0, 0, 15, 0, + 2, 0, 0, 0, 13, 0, 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 5, 0, - 0, 0, 16, 0, 0, 0, + 18, 32, 16, 0, 3, 0, + 0, 0, 14, 0, 0, 0, 104, 0, 0, 2, 1, 0, 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 4, 0, - 0, 0, 2, 0, 0, 0, + 18, 32, 16, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 54, 0, 0, 4, 18, 0, 16, 0, 0, 0, 0, 0, 10, 112, 1, 0, 54, 0, - 0, 9, 18, 32, 208, 0, - 4, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 6, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 5, 0, + 0, 8, 18, 32, 144, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 115, 0, + 0, 1, 153, 0, 0, 2, + 2, 0, 0, 0, 95, 0, + 0, 2, 0, 112, 1, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 4, 0, 0, 0, + 15, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 5, 0, 0, 0, 16, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 4, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 4, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 9, 18, 32, + 208, 0, 4, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 6, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_1cp_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_1cp_hs.h index e33fd446e..d34d92806 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_1cp_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_1cp_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -115,21 +115,21 @@ ret const BYTE discrete_triangle_1cp_hs[] = { - 68, 88, 66, 67, 227, 140, - 35, 65, 156, 178, 224, 139, - 122, 75, 128, 231, 90, 78, - 65, 91, 1, 0, 0, 0, - 76, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 115, 241, + 168, 52, 141, 229, 16, 29, + 225, 108, 55, 105, 208, 26, + 191, 168, 1, 0, 0, 0, + 84, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 160, 10, - 0, 0, 212, 10, 0, 0, - 104, 11, 0, 0, 176, 12, + 116, 10, 0, 0, 168, 10, + 0, 0, 220, 10, 0, 0, + 112, 11, 0, 0, 184, 12, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -249,103 +249,103 @@ const BYTE discrete_triangle_1cp_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -458,51 +458,87 @@ const BYTE discrete_triangle_1cp_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -511,176 +547,141 @@ const BYTE discrete_triangle_1cp_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, + 1, 1, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 14, 0, 0, 88, 69, 86, 69, 82, 84, 69, 88, 73, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 171, 80, 67, 83, 71, + 140, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, - 88, 69, 86, 69, 82, 84, - 69, 88, 73, 68, 0, 171, - 80, 67, 83, 71, 140, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 1, 14, 0, 0, 104, 0, - 0, 0, 2, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 1, 14, 0, 0, 118, 0, - 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 14, 0, 0, 83, 86, - 95, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 83, 86, 95, 73, 110, 115, - 105, 100, 101, 84, 101, 115, + 104, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 1, 14, 0, 0, + 104, 0, 0, 0, 2, 0, + 0, 0, 13, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 14, 0, 0, + 118, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 14, 0, 0, + 83, 86, 95, 84, 101, 115, 115, 70, 97, 99, 116, 111, - 114, 0, 171, 171, 83, 72, - 69, 88, 64, 1, 0, 0, - 81, 0, 3, 0, 80, 0, - 0, 0, 113, 0, 0, 1, - 147, 8, 0, 1, 148, 8, - 0, 1, 149, 16, 0, 1, - 150, 8, 0, 1, 151, 24, - 0, 1, 106, 8, 0, 1, - 89, 0, 0, 7, 70, 142, + 114, 0, 83, 86, 95, 73, + 110, 115, 105, 100, 101, 84, + 101, 115, 115, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 83, 72, 69, 88, 64, 1, + 0, 0, 81, 0, 3, 0, + 80, 0, 0, 0, 113, 0, + 0, 1, 147, 8, 0, 1, + 148, 8, 0, 1, 149, 16, + 0, 1, 150, 8, 0, 1, + 151, 24, 0, 1, 106, 8, + 0, 1, 89, 0, 0, 7, + 70, 142, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 114, 0, 0, 1, 95, 0, + 0, 4, 18, 16, 32, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 18, 32, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 18, 32, 16, 0, 0, 0, + 0, 0, 10, 16, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 153, 0, + 0, 2, 3, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 1, 0, 0, 0, + 18, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 2, 0, 0, 0, 19, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 4, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 8, 18, 32, + 144, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 114, 0, - 0, 1, 95, 0, 0, 4, - 18, 16, 32, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 18, 32, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 18, 32, - 16, 0, 0, 0, 0, 0, - 10, 16, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 153, 0, 0, 2, - 3, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 103, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 103, 0, 0, 4, 18, 32, 16, 0, - 1, 0, 0, 0, 18, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 2, 0, - 0, 0, 19, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 4, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 112, 1, 0, 54, 0, - 0, 8, 18, 32, 144, 0, - 10, 0, 16, 0, 0, 0, + 3, 0, 0, 0, 20, 0, + 0, 0, 54, 0, 0, 7, + 18, 32, 16, 0, 3, 0, 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 103, 0, 0, 4, - 18, 32, 16, 0, 3, 0, - 0, 0, 20, 0, 0, 0, - 54, 0, 0, 7, 18, 32, - 16, 0, 3, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 7, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 7, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_3cp_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_3cp_hs.h index 7f853cbc1..e307b31ff 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_3cp_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_3cp_hs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -110,21 +110,21 @@ ret const BYTE discrete_triangle_3cp_hs[] = { - 68, 88, 66, 67, 159, 101, - 17, 163, 1, 25, 162, 203, - 87, 30, 32, 90, 1, 126, - 212, 108, 1, 0, 0, 0, - 16, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 32, 22, + 215, 129, 127, 110, 70, 162, + 42, 32, 73, 43, 11, 32, + 196, 23, 1, 0, 0, 0, + 24, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 108, 10, 0, 0, 160, 10, - 0, 0, 212, 10, 0, 0, - 104, 11, 0, 0, 116, 12, + 116, 10, 0, 0, 168, 10, + 0, 0, 220, 10, 0, 0, + 112, 11, 0, 0, 124, 12, 0, 0, 82, 68, 69, 70, - 44, 10, 0, 0, 1, 0, + 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 0, 0, 2, 10, + 0, 5, 0, 0, 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -244,103 +244,103 @@ const BYTE discrete_triangle_3cp_hs[] = 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 209, 7, + 0, 0, 0, 0, 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 230, 7, 0, 0, + 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 254, 7, 0, 0, 224, 0, + 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 15, 8, + 0, 0, 0, 0, 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 55, 8, 0, 0, + 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 8, 0, 0, 240, 0, + 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 8, + 0, 0, 0, 0, 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 171, 8, 0, 0, + 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 197, 8, 0, 0, 16, 1, + 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 252, 8, + 0, 0, 0, 0, 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 64, 9, 0, 0, + 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 89, 9, 0, 0, 80, 1, + 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 9, + 0, 0, 0, 0, 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 144, 9, + 0, 0, 0, 0, 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 168, 9, 0, 0, + 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 204, 9, 0, 0, + 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 28, 9, 0, 0, 0, 0, + 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 234, 9, 0, 0, 192, 1, + 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 8, + 0, 0, 0, 0, 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, @@ -453,51 +453,87 @@ const BYTE discrete_triangle_3cp_hs[] = 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 115, 97, - 109, 112, 108, 101, 95, 99, - 111, 117, 110, 116, 95, 108, - 111, 103, 50, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 101, 115, 116, 95, - 114, 101, 102, 101, 114, 101, - 110, 99, 101, 0, 120, 101, - 95, 97, 108, 112, 104, 97, - 95, 116, 111, 95, 109, 97, - 115, 107, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 51, 50, 98, 112, 112, 95, - 116, 105, 108, 101, 95, 112, - 105, 116, 99, 104, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, + 115, 111, 108, 117, 116, 105, + 111, 110, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 101, + 115, 116, 95, 114, 101, 102, + 101, 114, 101, 110, 99, 101, + 0, 120, 101, 95, 97, 108, + 112, 104, 97, 95, 116, 111, + 95, 109, 97, 115, 107, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 51, 50, 98, + 112, 112, 95, 116, 105, 108, + 101, 95, 112, 105, 116, 99, + 104, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 100, 101, 112, 116, 104, + 95, 98, 97, 115, 101, 95, + 100, 119, 111, 114, 100, 115, + 95, 115, 99, 97, 108, 101, + 100, 0, 120, 101, 95, 99, + 111, 108, 111, 114, 95, 101, + 120, 112, 95, 98, 105, 97, + 115, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 100, 101, - 112, 116, 104, 95, 98, 97, - 115, 101, 95, 100, 119, 111, - 114, 100, 115, 95, 115, 99, - 97, 108, 101, 100, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, + 114, 97, 109, 95, 115, 116, + 101, 110, 99, 105, 108, 0, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 7, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 114, + 116, 95, 98, 97, 115, 101, + 95, 100, 119, 111, 114, 100, + 115, 95, 115, 99, 97, 108, + 101, 100, 0, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 102, 111, + 114, 109, 97, 116, 95, 102, + 108, 97, 103, 115, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 114, 116, 95, 99, + 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 102, 114, 111, - 110, 116, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 98, 97, 99, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 97, 109, 95, 114, 116, 95, + 107, 101, 101, 112, 95, 109, + 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -506,166 +542,131 @@ const BYTE discrete_triangle_3cp_hs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, + 98, 108, 101, 110, 100, 95, + 102, 97, 99, 116, 111, 114, + 115, 95, 111, 112, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 98, 108, 101, + 110, 100, 95, 99, 111, 110, + 115, 116, 97, 110, 116, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 7, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 114, - 116, 95, 102, 111, 114, 109, - 97, 116, 95, 102, 108, 97, - 103, 115, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 114, 116, 95, 99, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 92, 6, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 107, 101, - 101, 112, 95, 109, 97, 115, - 107, 0, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 98, 108, - 101, 110, 100, 95, 102, 97, - 99, 116, 111, 114, 115, 95, - 111, 112, 115, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 98, 108, 101, 110, 100, - 95, 99, 111, 110, 115, 116, - 97, 110, 116, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 49, 48, 46, - 49, 0, 171, 171, 73, 83, + 1, 1, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 14, 0, 0, 88, 69, 86, 69, 82, 84, 69, 88, 73, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 171, 80, 67, 83, 71, + 140, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0, 0, - 88, 69, 86, 69, 82, 84, - 69, 88, 73, 68, 0, 171, - 80, 67, 83, 71, 140, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 1, 14, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 1, 14, 0, 0, 104, 0, - 0, 0, 2, 0, 0, 0, - 13, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 1, 14, 0, 0, 118, 0, - 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 14, 0, 0, 83, 86, - 95, 84, 101, 115, 115, 70, - 97, 99, 116, 111, 114, 0, - 83, 86, 95, 73, 110, 115, - 105, 100, 101, 84, 101, 115, + 104, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 1, 14, 0, 0, + 104, 0, 0, 0, 2, 0, + 0, 0, 13, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 14, 0, 0, + 118, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 14, 0, 0, + 83, 86, 95, 84, 101, 115, 115, 70, 97, 99, 116, 111, - 114, 0, 171, 171, 83, 72, - 69, 88, 4, 1, 0, 0, - 81, 0, 3, 0, 65, 0, - 0, 0, 113, 0, 0, 1, - 147, 24, 0, 1, 148, 24, - 0, 1, 149, 16, 0, 1, - 150, 8, 0, 1, 151, 24, - 0, 1, 106, 8, 0, 1, - 89, 0, 0, 7, 70, 142, + 114, 0, 83, 86, 95, 73, + 110, 115, 105, 100, 101, 84, + 101, 115, 115, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 83, 72, 69, 88, 4, 1, + 0, 0, 81, 0, 3, 0, + 65, 0, 0, 0, 113, 0, + 0, 1, 147, 24, 0, 1, + 148, 24, 0, 1, 149, 16, + 0, 1, 150, 8, 0, 1, + 151, 24, 0, 1, 106, 8, + 0, 1, 89, 0, 0, 7, + 70, 142, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 115, 0, 0, 1, 153, 0, + 0, 2, 3, 0, 0, 0, + 95, 0, 0, 2, 0, 112, + 1, 0, 103, 0, 0, 4, + 18, 32, 16, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 103, 0, 0, 4, 18, 32, + 16, 0, 1, 0, 0, 0, + 18, 0, 0, 0, 103, 0, + 0, 4, 18, 32, 16, 0, + 2, 0, 0, 0, 19, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 91, 0, + 0, 4, 18, 32, 16, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 4, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 112, 1, 0, + 54, 0, 0, 8, 18, 32, + 144, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 0, - 0, 1, 153, 0, 0, 2, - 3, 0, 0, 0, 95, 0, - 0, 2, 0, 112, 1, 0, - 103, 0, 0, 4, 18, 32, - 16, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 103, 0, + 0, 0, 62, 0, 0, 1, + 115, 0, 0, 1, 103, 0, 0, 4, 18, 32, 16, 0, - 1, 0, 0, 0, 18, 0, - 0, 0, 103, 0, 0, 4, - 18, 32, 16, 0, 2, 0, - 0, 0, 19, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 91, 0, 0, 4, - 18, 32, 16, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 4, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 112, 1, 0, 54, 0, - 0, 8, 18, 32, 144, 0, - 10, 0, 16, 0, 0, 0, + 3, 0, 0, 0, 20, 0, + 0, 0, 54, 0, 0, 7, + 18, 32, 16, 0, 3, 0, 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 115, 0, - 0, 1, 103, 0, 0, 4, - 18, 32, 16, 0, 3, 0, - 0, 0, 20, 0, 0, 0, - 54, 0, 0, 7, 18, 32, - 16, 0, 3, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 5, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 4, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_adaptive_vs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_adaptive_vs.h index 39f388e92..a958cf825 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_adaptive_vs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_adaptive_vs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -92,21 +92,21 @@ ret const BYTE tessellation_adaptive_vs[] = { - 68, 88, 66, 67, 124, 10, - 20, 236, 52, 205, 17, 163, - 29, 96, 4, 68, 69, 43, - 2, 171, 1, 0, 0, 0, - 116, 13, 0, 0, 5, 0, + 68, 88, 66, 67, 176, 83, + 38, 124, 12, 115, 219, 54, + 63, 56, 200, 154, 202, 77, + 95, 132, 1, 0, 0, 0, + 124, 13, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 104, 10, 0, 0, 156, 10, - 0, 0, 212, 10, 0, 0, - 216, 12, 0, 0, 82, 68, - 69, 70, 44, 10, 0, 0, + 112, 10, 0, 0, 164, 10, + 0, 0, 220, 10, 0, 0, + 224, 12, 0, 0, 82, 68, + 69, 70, 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 254, 255, 0, 5, 0, 0, - 2, 10, 0, 0, 19, 19, + 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, @@ -226,103 +226,103 @@ const BYTE tessellation_adaptive_vs[] = 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 209, 7, 0, 0, 212, 0, + 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 230, 7, + 0, 0, 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 254, 7, 0, 0, + 0, 0, 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 15, 8, 0, 0, 228, 0, + 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 55, 8, + 0, 0, 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 89, 8, 0, 0, + 0, 0, 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 108, 8, 0, 0, 0, 0, + 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 144, 8, 0, 0, 0, 1, + 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 171, 8, + 0, 0, 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 197, 8, 0, 0, + 0, 0, 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 216, 8, 0, 0, 0, 0, + 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 252, 8, 0, 0, 48, 1, + 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 28, 9, + 0, 0, 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 64, 9, + 0, 0, 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 89, 9, 0, 0, + 0, 0, 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 108, 9, 0, 0, 0, 0, + 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 144, 9, 0, 0, 144, 1, + 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 168, 9, + 0, 0, 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 204, 9, + 0, 0, 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 234, 9, 0, 0, + 0, 0, 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 108, 8, 0, 0, 0, 0, + 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, @@ -434,51 +434,87 @@ const BYTE tessellation_adaptive_vs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, - 114, 101, 115, 111, 108, 118, - 101, 100, 0, 120, 101, 95, - 115, 97, 109, 112, 108, 101, - 95, 99, 111, 117, 110, 116, - 95, 108, 111, 103, 50, 0, - 120, 101, 95, 97, 108, 112, - 104, 97, 95, 116, 101, 115, - 116, 95, 114, 101, 102, 101, - 114, 101, 110, 99, 101, 0, - 120, 101, 95, 97, 108, 112, - 104, 97, 95, 116, 111, 95, - 109, 97, 115, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 51, 50, 98, 112, - 112, 95, 116, 105, 108, 101, - 95, 112, 105, 116, 99, 104, - 95, 100, 119, 111, 114, 100, - 115, 95, 115, 99, 97, 108, - 101, 100, 0, 120, 101, 95, + 114, 101, 115, 111, 108, 117, + 116, 105, 111, 110, 95, 115, + 99, 97, 108, 101, 100, 0, + 120, 101, 95, 115, 97, 109, + 112, 108, 101, 95, 99, 111, + 117, 110, 116, 95, 108, 111, + 103, 50, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 101, 115, 116, 95, 114, + 101, 102, 101, 114, 101, 110, + 99, 101, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 111, 95, 109, 97, 115, + 107, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 51, + 50, 98, 112, 112, 95, 116, + 105, 108, 101, 95, 112, 105, + 116, 99, 104, 95, 100, 119, + 111, 114, 100, 115, 95, 115, + 99, 97, 108, 101, 100, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 100, 101, 112, + 116, 104, 95, 98, 97, 115, + 101, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 99, 111, 108, 111, 114, + 95, 101, 120, 112, 95, 98, + 105, 97, 115, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 92, 6, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 112, 111, 108, 121, 95, + 111, 102, 102, 115, 101, 116, + 95, 102, 114, 111, 110, 116, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 112, 111, + 108, 121, 95, 111, 102, 102, + 115, 101, 116, 95, 98, 97, + 99, 107, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, - 100, 101, 112, 116, 104, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 120, 101, 95, 99, 111, - 108, 111, 114, 95, 101, 120, - 112, 95, 98, 105, 97, 115, + 115, 116, 101, 110, 99, 105, + 108, 0, 171, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 98, 97, + 115, 101, 95, 100, 119, 111, + 114, 100, 115, 95, 115, 99, + 97, 108, 101, 100, 0, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 143, 7, 0, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 114, 116, 95, + 102, 111, 114, 109, 97, 116, + 95, 102, 108, 97, 103, 115, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 114, 116, + 95, 99, 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, + 1, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 112, - 111, 108, 121, 95, 111, 102, - 102, 115, 101, 116, 95, 102, - 114, 111, 110, 116, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 112, 111, 108, 121, - 95, 111, 102, 102, 115, 101, - 116, 95, 98, 97, 99, 107, - 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 115, 116, - 101, 110, 99, 105, 108, 0, + 100, 114, 97, 109, 95, 114, + 116, 95, 107, 101, 101, 112, + 95, 109, 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, @@ -487,174 +523,139 @@ const BYTE tessellation_adaptive_vs[] = 0, 0, 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, - 116, 95, 98, 97, 115, 101, - 95, 100, 119, 111, 114, 100, - 115, 95, 115, 99, 97, 108, - 101, 100, 0, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 102, 111, - 114, 109, 97, 116, 95, 102, - 108, 97, 103, 115, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 114, 116, 95, 99, - 108, 97, 109, 112, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 92, 6, 0, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 114, 116, 95, - 107, 101, 101, 112, 95, 109, - 97, 115, 107, 0, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 143, 7, 0, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 114, 116, 95, - 98, 108, 101, 110, 100, 95, - 102, 97, 99, 116, 111, 114, - 115, 95, 111, 112, 115, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 98, 108, 101, - 110, 100, 95, 99, 111, 110, - 115, 116, 97, 110, 116, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 49, - 48, 46, 49, 0, 171, 171, - 73, 83, 71, 78, 44, 0, + 116, 95, 98, 108, 101, 110, + 100, 95, 102, 97, 99, 116, + 111, 114, 115, 95, 111, 112, + 115, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 98, + 108, 101, 110, 100, 95, 99, + 111, 110, 115, 116, 97, 110, + 116, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 171, 171, 73, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 0, 0, + 83, 86, 95, 86, 101, 114, + 116, 101, 120, 73, 68, 0, + 79, 83, 71, 78, 48, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 83, 86, - 95, 86, 101, 114, 116, 101, - 120, 73, 68, 0, 79, 83, - 71, 78, 48, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 1, 14, 0, 0, 88, 69, + 84, 69, 83, 83, 70, 65, + 67, 84, 79, 82, 0, 171, + 171, 171, 83, 72, 69, 88, + 252, 1, 0, 0, 81, 0, + 1, 0, 127, 0, 0, 0, + 106, 8, 0, 1, 89, 0, + 0, 7, 70, 142, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 14, - 0, 0, 88, 69, 84, 69, - 83, 83, 70, 65, 67, 84, - 79, 82, 0, 171, 171, 171, - 83, 72, 69, 88, 252, 1, - 0, 0, 81, 0, 1, 0, - 127, 0, 0, 0, 106, 8, - 0, 1, 89, 0, 0, 7, - 70, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 96, 0, 0, 4, 18, 16, + 2, 0, 0, 0, 0, 0, + 0, 0, 96, 0, 0, 4, + 18, 16, 16, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 101, 0, 0, 3, 18, 32, 16, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 101, 0, - 0, 3, 18, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 32, 0, 0, 12, 114, 0, - 16, 0, 0, 0, 0, 0, - 6, 128, 48, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 32, 0, 0, 12, + 114, 0, 16, 0, 0, 0, + 0, 0, 6, 128, 48, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 64, 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 60, 0, 0, 7, 50, 0, + 2, 64, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 60, 0, 0, 7, + 50, 0, 16, 0, 0, 0, + 0, 0, 150, 5, 16, 0, + 0, 0, 0, 0, 70, 0, 16, 0, 0, 0, 0, 0, - 150, 5, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 31, 0, - 4, 3, 10, 0, 16, 0, - 0, 0, 0, 0, 41, 0, - 0, 7, 18, 0, 16, 0, + 31, 0, 4, 3, 10, 0, + 16, 0, 0, 0, 0, 0, + 41, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 16, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 8, 0, 0, 0, 85, 0, + 0, 7, 66, 0, 16, 0, 0, 0, 0, 0, 10, 16, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, 8, 0, - 0, 0, 85, 0, 0, 7, - 66, 0, 16, 0, 0, 0, + 0, 0, 1, 0, 0, 10, + 82, 0, 16, 0, 0, 0, + 0, 0, 6, 2, 16, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 255, 0, 255, + 0, 0, 0, 0, 255, 0, + 255, 0, 0, 0, 0, 0, + 30, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 18, 0, + 0, 1, 54, 0, 0, 5, + 18, 0, 16, 0, 0, 0, 0, 0, 10, 16, 16, 0, + 0, 0, 0, 0, 21, 0, + 0, 1, 31, 0, 4, 3, + 26, 0, 16, 0, 0, 0, + 0, 0, 85, 0, 0, 7, + 34, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, - 0, 0, 8, 0, 0, 0, - 1, 0, 0, 10, 82, 0, + 0, 0, 16, 0, 0, 0, + 140, 0, 0, 11, 18, 0, 16, 0, 0, 0, 0, 0, - 6, 2, 16, 0, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 255, 0, 255, 0, 0, - 0, 0, 255, 0, 255, 0, - 0, 0, 0, 0, 30, 0, - 0, 7, 18, 0, 16, 0, - 0, 0, 0, 0, 42, 0, + 1, 64, 0, 0, 16, 0, + 0, 0, 1, 64, 0, 0, + 16, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 18, 0, 0, 1, - 54, 0, 0, 5, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 16, 16, 0, 0, 0, + 26, 0, 16, 0, 0, 0, 0, 0, 21, 0, 0, 1, - 31, 0, 4, 3, 26, 0, - 16, 0, 0, 0, 0, 0, - 85, 0, 0, 7, 34, 0, + 0, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, - 16, 0, 0, 0, 140, 0, - 0, 11, 18, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 16, 0, 0, 0, - 1, 64, 0, 0, 16, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 26, 0, - 16, 0, 0, 0, 0, 0, - 21, 0, 0, 1, 0, 0, - 0, 7, 18, 0, 16, 0, + 0, 0, 128, 63, 52, 0, + 0, 9, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 52, 0, 0, 9, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 26, 128, - 48, 0, 0, 0, 0, 0, + 26, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 0, 0, 9, - 18, 32, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 42, 128, - 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 0, + 0, 9, 18, 32, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 148, 0, - 0, 0, 18, 0, 0, 0, - 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 148, 0, 0, 0, 18, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 2, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -665,5 +666,6 @@ const BYTE tessellation_adaptive_vs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, + 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_indexed_vs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_indexed_vs.h index bace06328..db3fd3cc9 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_indexed_vs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_indexed_vs.h @@ -22,7 +22,7 @@ // float2 xe_point_constant_diameter; // Offset: 160 Size: 8 [unused] // float2 xe_point_screen_diameter_to_ndc_radius;// Offset: 168 Size: 8 [unused] // uint4 xe_texture_swizzled_signs[2];// Offset: 176 Size: 32 [unused] -// uint xe_textures_resolved; // Offset: 208 Size: 4 [unused] +// uint xe_textures_resolution_scaled;// Offset: 208 Size: 4 [unused] // uint2 xe_sample_count_log2; // Offset: 212 Size: 8 [unused] // float xe_alpha_test_reference; // Offset: 220 Size: 4 [unused] // uint xe_alpha_to_mask; // Offset: 224 Size: 4 [unused] @@ -94,21 +94,21 @@ ret const BYTE tessellation_indexed_vs[] = { - 68, 88, 66, 67, 72, 50, - 55, 79, 78, 232, 44, 71, - 22, 110, 232, 129, 83, 139, - 178, 150, 1, 0, 0, 0, - 168, 13, 0, 0, 5, 0, + 68, 88, 66, 67, 141, 104, + 237, 168, 205, 100, 22, 191, + 159, 23, 183, 42, 54, 72, + 27, 224, 1, 0, 0, 0, + 176, 13, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 104, 10, 0, 0, 156, 10, - 0, 0, 208, 10, 0, 0, - 12, 13, 0, 0, 82, 68, - 69, 70, 44, 10, 0, 0, + 112, 10, 0, 0, 164, 10, + 0, 0, 216, 10, 0, 0, + 20, 13, 0, 0, 82, 68, + 69, 70, 52, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 254, 255, 0, 5, 0, 0, - 2, 10, 0, 0, 19, 19, + 10, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, @@ -228,103 +228,103 @@ const BYTE tessellation_indexed_vs[] = 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 209, 7, 0, 0, 212, 0, + 218, 7, 0, 0, 212, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 230, 7, + 0, 0, 0, 0, 239, 7, 0, 0, 220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 254, 7, 0, 0, + 0, 0, 7, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 15, 8, 0, 0, 228, 0, + 24, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 55, 8, + 0, 0, 0, 0, 64, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 89, 8, 0, 0, + 0, 0, 98, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 108, 8, 0, 0, 0, 0, + 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 144, 8, 0, 0, 0, 1, + 152, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 171, 8, + 0, 0, 0, 0, 179, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 197, 8, 0, 0, + 0, 0, 205, 8, 0, 0, 16, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 216, 8, 0, 0, 0, 0, + 224, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 252, 8, 0, 0, 48, 1, + 4, 9, 0, 0, 48, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 28, 9, + 0, 0, 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 64, 9, + 0, 0, 0, 0, 72, 9, 0, 0, 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 89, 9, 0, 0, + 0, 0, 97, 9, 0, 0, 80, 1, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 108, 9, 0, 0, 0, 0, + 116, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 144, 9, 0, 0, 144, 1, + 152, 9, 0, 0, 144, 1, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 168, 9, + 0, 0, 0, 0, 176, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 204, 9, + 0, 0, 0, 0, 212, 9, 0, 0, 176, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 28, 9, 0, 0, + 0, 0, 36, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 234, 9, 0, 0, + 0, 0, 242, 9, 0, 0, 192, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 108, 8, 0, 0, 0, 0, + 116, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, @@ -436,51 +436,87 @@ const BYTE tessellation_indexed_vs[] = 0, 0, 143, 7, 0, 0, 120, 101, 95, 116, 101, 120, 116, 117, 114, 101, 115, 95, - 114, 101, 115, 111, 108, 118, - 101, 100, 0, 120, 101, 95, - 115, 97, 109, 112, 108, 101, - 95, 99, 111, 117, 110, 116, - 95, 108, 111, 103, 50, 0, - 120, 101, 95, 97, 108, 112, - 104, 97, 95, 116, 101, 115, - 116, 95, 114, 101, 102, 101, - 114, 101, 110, 99, 101, 0, - 120, 101, 95, 97, 108, 112, - 104, 97, 95, 116, 111, 95, - 109, 97, 115, 107, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 51, 50, 98, 112, - 112, 95, 116, 105, 108, 101, - 95, 112, 105, 116, 99, 104, - 95, 100, 119, 111, 114, 100, - 115, 95, 115, 99, 97, 108, - 101, 100, 0, 120, 101, 95, + 114, 101, 115, 111, 108, 117, + 116, 105, 111, 110, 95, 115, + 99, 97, 108, 101, 100, 0, + 120, 101, 95, 115, 97, 109, + 112, 108, 101, 95, 99, 111, + 117, 110, 116, 95, 108, 111, + 103, 50, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 101, 115, 116, 95, 114, + 101, 102, 101, 114, 101, 110, + 99, 101, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 111, 95, 109, 97, 115, + 107, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 51, + 50, 98, 112, 112, 95, 116, + 105, 108, 101, 95, 112, 105, + 116, 99, 104, 95, 100, 119, + 111, 114, 100, 115, 95, 115, + 99, 97, 108, 101, 100, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 100, 101, 112, + 116, 104, 95, 98, 97, 115, + 101, 95, 100, 119, 111, 114, + 100, 115, 95, 115, 99, 97, + 108, 101, 100, 0, 120, 101, + 95, 99, 111, 108, 111, 114, + 95, 101, 120, 112, 95, 98, + 105, 97, 115, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 92, 6, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 112, 111, 108, 121, 95, + 111, 102, 102, 115, 101, 116, + 95, 102, 114, 111, 110, 116, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 112, 111, + 108, 121, 95, 111, 102, 102, + 115, 101, 116, 95, 98, 97, + 99, 107, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, - 100, 101, 112, 116, 104, 95, - 98, 97, 115, 101, 95, 100, - 119, 111, 114, 100, 115, 95, - 115, 99, 97, 108, 101, 100, - 0, 120, 101, 95, 99, 111, - 108, 111, 114, 95, 101, 120, - 112, 95, 98, 105, 97, 115, + 115, 116, 101, 110, 99, 105, + 108, 0, 171, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 143, 7, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 114, 116, 95, 98, 97, + 115, 101, 95, 100, 119, 111, + 114, 100, 115, 95, 115, 99, + 97, 108, 101, 100, 0, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 143, 7, 0, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 114, 116, 95, + 102, 111, 114, 109, 97, 116, + 95, 102, 108, 97, 103, 115, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 114, 116, + 95, 99, 108, 97, 109, 112, 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, + 1, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 6, 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 112, - 111, 108, 121, 95, 111, 102, - 102, 115, 101, 116, 95, 102, - 114, 111, 110, 116, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 112, 111, 108, 121, - 95, 111, 102, 102, 115, 101, - 116, 95, 98, 97, 99, 107, - 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 115, 116, - 101, 110, 99, 105, 108, 0, + 100, 114, 97, 109, 95, 114, + 116, 95, 107, 101, 101, 112, + 95, 109, 97, 115, 107, 0, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, @@ -489,184 +525,149 @@ const BYTE tessellation_indexed_vs[] = 0, 0, 0, 0, 143, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, - 116, 95, 98, 97, 115, 101, - 95, 100, 119, 111, 114, 100, - 115, 95, 115, 99, 97, 108, - 101, 100, 0, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 143, 7, 0, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 114, 116, 95, 102, 111, - 114, 109, 97, 116, 95, 102, - 108, 97, 103, 115, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 114, 116, 95, 99, - 108, 97, 109, 112, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 92, 6, 0, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 114, 116, 95, - 107, 101, 101, 112, 95, 109, - 97, 115, 107, 0, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 143, 7, 0, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 114, 116, 95, - 98, 108, 101, 110, 100, 95, - 102, 97, 99, 116, 111, 114, - 115, 95, 111, 112, 115, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 98, 108, 101, - 110, 100, 95, 99, 111, 110, - 115, 116, 97, 110, 116, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 49, - 48, 46, 49, 0, 171, 171, - 73, 83, 71, 78, 44, 0, + 116, 95, 98, 108, 101, 110, + 100, 95, 102, 97, 99, 116, + 111, 114, 115, 95, 111, 112, + 115, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 98, + 108, 101, 110, 100, 95, 99, + 111, 110, 115, 116, 97, 110, + 116, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 171, 171, 73, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 0, 0, + 83, 86, 95, 86, 101, 114, + 116, 101, 120, 73, 68, 0, + 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 83, 86, - 95, 86, 101, 114, 116, 101, - 120, 73, 68, 0, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 1, 14, 0, 0, 88, 69, + 86, 69, 82, 84, 69, 88, + 73, 68, 0, 171, 83, 72, + 69, 88, 52, 2, 0, 0, + 81, 0, 1, 0, 141, 0, + 0, 0, 106, 8, 0, 1, + 89, 0, 0, 7, 70, 142, + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 1, 14, - 0, 0, 88, 69, 86, 69, - 82, 84, 69, 88, 73, 68, - 0, 171, 83, 72, 69, 88, - 52, 2, 0, 0, 81, 0, - 1, 0, 141, 0, 0, 0, - 106, 8, 0, 1, 89, 0, - 0, 7, 70, 142, 48, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 96, 0, 0, 4, - 18, 16, 16, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 101, 0, 0, 3, 18, 32, - 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 32, 0, 0, 12, - 114, 0, 16, 0, 0, 0, - 0, 0, 6, 128, 48, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 2, 64, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 60, 0, 0, 7, - 50, 0, 16, 0, 0, 0, - 0, 0, 150, 5, 16, 0, - 0, 0, 0, 0, 70, 0, + 0, 0, 0, 0, 96, 0, + 0, 4, 18, 16, 16, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 101, 0, 0, 3, + 18, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 32, 0, + 0, 12, 114, 0, 16, 0, + 0, 0, 0, 0, 6, 128, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 2, 64, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 60, 0, + 0, 7, 50, 0, 16, 0, + 0, 0, 0, 0, 150, 5, 16, 0, 0, 0, 0, 0, - 31, 0, 4, 3, 10, 0, - 16, 0, 0, 0, 0, 0, - 41, 0, 0, 7, 18, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 31, 0, 4, 3, + 10, 0, 16, 0, 0, 0, + 0, 0, 41, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 16, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 8, 0, 0, 0, + 85, 0, 0, 7, 66, 0, 16, 0, 0, 0, 0, 0, 10, 16, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, - 8, 0, 0, 0, 85, 0, - 0, 7, 66, 0, 16, 0, + 8, 0, 0, 0, 1, 0, + 0, 10, 82, 0, 16, 0, + 0, 0, 0, 0, 6, 2, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 255, + 0, 255, 0, 0, 0, 0, + 255, 0, 255, 0, 0, 0, + 0, 0, 30, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 18, 0, 0, 1, 54, 0, + 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 10, 16, 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 8, 0, - 0, 0, 1, 0, 0, 10, - 82, 0, 16, 0, 0, 0, - 0, 0, 6, 2, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 255, 0, 255, - 0, 0, 0, 0, 255, 0, - 255, 0, 0, 0, 0, 0, - 30, 0, 0, 7, 18, 0, - 16, 0, 0, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 18, 0, - 0, 1, 54, 0, 0, 5, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 16, 16, 0, - 0, 0, 0, 0, 21, 0, - 0, 1, 31, 0, 4, 3, - 26, 0, 16, 0, 0, 0, - 0, 0, 85, 0, 0, 7, - 34, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 16, 0, 0, 0, - 140, 0, 0, 11, 18, 0, + 21, 0, 0, 1, 31, 0, + 4, 3, 26, 0, 16, 0, + 0, 0, 0, 0, 85, 0, + 0, 7, 34, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, 16, 0, + 0, 0, 140, 0, 0, 11, + 18, 0, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, - 16, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 21, 0, 0, 1, - 30, 0, 0, 9, 18, 0, + 16, 0, 0, 0, 1, 64, + 0, 0, 16, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 21, 0, + 0, 1, 30, 0, 0, 9, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 26, 128, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 255, 255, 255, 0, + 83, 0, 0, 9, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 26, 128, 48, 0, + 0, 0, 42, 128, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 7, 18, 0, + 84, 0, 0, 9, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 255, 255, 255, 0, 83, 0, - 0, 9, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 128, 48, 0, 0, 0, + 0, 0, 58, 128, 48, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 84, 0, - 0, 9, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 0, + 0, 0, 1, 0, 0, 0, + 86, 0, 0, 5, 18, 32, 16, 0, 0, 0, 0, 0, - 58, 128, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 86, 0, - 0, 5, 18, 32, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 148, 0, 0, 0, - 20, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 7, 0, 0, 0, 2, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 148, 0, + 0, 0, 20, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 7, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -676,5 +677,5 @@ const BYTE tessellation_indexed_vs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/xenos_draw.hlsli b/src/xenia/gpu/shaders/xenos_draw.hlsli index 840662e27..a866ad460 100644 --- a/src/xenia/gpu/shaders/xenos_draw.hlsli +++ b/src/xenia/gpu/shaders/xenos_draw.hlsli @@ -23,7 +23,7 @@ cbuffer xe_system_cbuffer : register(b0) { uint4 xe_texture_swizzled_signs[2]; - uint xe_textures_resolved; + uint xe_textures_resolution_scaled; uint2 xe_sample_count_log2; float xe_alpha_test_reference; diff --git a/src/xenia/gpu/shared_memory.cc b/src/xenia/gpu/shared_memory.cc index c7c5c9c19..50694fdfe 100644 --- a/src/xenia/gpu/shared_memory.cc +++ b/src/xenia/gpu/shared_memory.cc @@ -246,8 +246,7 @@ void SharedMemory::FireWatches(uint32_t page_first, uint32_t page_last, } } -void SharedMemory::RangeWrittenByGpu(uint32_t start, uint32_t length, - bool is_resolve) { +void SharedMemory::RangeWrittenByGpu(uint32_t start, uint32_t length) { if (length == 0 || start >= kBufferSize) { return; } @@ -262,7 +261,7 @@ void SharedMemory::RangeWrittenByGpu(uint32_t start, uint32_t length, // Mark the range as valid (so pages are not reuploaded until modified by the // CPU) and watch it so the CPU can reuse it and this will be caught. - MakeRangeValid(start, length, true, is_resolve); + MakeRangeValid(start, length, true); } bool SharedMemory::AllocateSparseHostGpuMemoryRange( @@ -274,9 +273,7 @@ bool SharedMemory::AllocateSparseHostGpuMemoryRange( } void SharedMemory::MakeRangeValid(uint32_t start, uint32_t length, - bool written_by_gpu, - bool written_by_gpu_resolve) { - assert_false(written_by_gpu_resolve && !written_by_gpu); + bool written_by_gpu) { if (length == 0 || start >= kBufferSize) { return; } @@ -305,11 +302,6 @@ void SharedMemory::MakeRangeValid(uint32_t start, uint32_t length, } else { block.valid_and_gpu_written &= ~valid_bits; } - if (written_by_gpu_resolve) { - block.valid_and_gpu_resolved |= valid_bits; - } else { - block.valid_and_gpu_resolved &= ~valid_bits; - } } } @@ -344,13 +336,9 @@ void SharedMemory::UnlinkWatchRange(WatchRange* range) { watch_range_first_free_ = range; } -bool SharedMemory::RequestRange(uint32_t start, uint32_t length, - bool* any_data_resolved_out) { +bool SharedMemory::RequestRange(uint32_t start, uint32_t length) { if (!length) { // Some texture or buffer is empty, for example - safe to draw in this case. - if (any_data_resolved_out) { - *any_data_resolved_out = false; - } return true; } if (start > kBufferSize || (kBufferSize - start) < length) { @@ -376,20 +364,14 @@ bool SharedMemory::RequestRange(uint32_t start, uint32_t length, for (uint32_t i = block_first; i <= block_last; ++i) { const SystemPageFlagsBlock& block = system_page_flags_[i]; uint64_t block_valid = block.valid; - uint64_t block_resolved = block.valid_and_gpu_resolved; // Consider pages in the block outside the requested range valid. if (i == block_first) { uint64_t block_before = (uint64_t(1) << (page_first & 63)) - 1; block_valid |= block_before; - block_resolved &= ~block_before; } if (i == block_last && (page_last & 63) != 63) { uint64_t block_inside = (uint64_t(1) << ((page_last & 63) + 1)) - 1; block_valid |= ~block_inside; - block_resolved &= block_inside; - } - if (block_resolved) { - any_data_resolved = true; } while (true) { @@ -425,9 +407,6 @@ bool SharedMemory::RequestRange(uint32_t start, uint32_t length, upload_ranges_.push_back( std::make_pair(range_start, page_last + 1 - range_start)); } - if (any_data_resolved_out) { - *any_data_resolved_out = any_data_resolved; - } if (upload_ranges_.empty()) { return true; } @@ -493,7 +472,6 @@ std::pair SharedMemory::MemoryInvalidationCallback( SystemPageFlagsBlock& block = system_page_flags_[i]; block.valid &= ~invalidate_bits; block.valid_and_gpu_written &= ~invalidate_bits; - block.valid_and_gpu_resolved &= ~invalidate_bits; } FireWatches(page_first, page_last, false); diff --git a/src/xenia/gpu/shared_memory.h b/src/xenia/gpu/shared_memory.h index 75d98f143..23249236c 100644 --- a/src/xenia/gpu/shared_memory.h +++ b/src/xenia/gpu/shared_memory.h @@ -76,8 +76,7 @@ class SharedMemory { // Checks if the range has been updated, uploads new data if needed and // ensures the host GPU memory backing the range are resident. Returns true if // the range has been fully updated and is usable. - bool RequestRange(uint32_t start, uint32_t length, - bool* any_data_resolved_out = nullptr); + bool RequestRange(uint32_t start, uint32_t length); // Marks the range and, if not exact_range, potentially its surroundings // (to up to the first GPU-written page, as an access violation exception @@ -93,7 +92,7 @@ class SharedMemory { // be called, to make sure, if the GPU writes don't overwrite *everything* in // the pages they touch, the CPU data is properly loaded to the unmodified // regions in those pages. - void RangeWrittenByGpu(uint32_t start, uint32_t length, bool is_resolve); + void RangeWrittenByGpu(uint32_t start, uint32_t length); protected: SharedMemory(Memory& memory); @@ -127,8 +126,7 @@ class SharedMemory { uint32_t length_allocations); // Mark the memory range as updated and protect it. - void MakeRangeValid(uint32_t start, uint32_t length, bool written_by_gpu, - bool written_by_gpu_resolve); + void MakeRangeValid(uint32_t start, uint32_t length, bool written_by_gpu); // Uploads a range of host pages - only called if host GPU sparse memory // allocation succeeded if needed. While uploading, MakeRangeValid must be @@ -197,9 +195,6 @@ class SharedMemory { // Subset of valid pages - whether each page in the GPU buffer contains data // that was written on the GPU, thus should not be invalidated spuriously. uint64_t valid_and_gpu_written; - // Subset of valid_and_gpu_written - whether each page in the GPU buffer - // contains data written specifically by resolving from EDRAM. - uint64_t valid_and_gpu_resolved; }; // Flags for each 64 system pages, interleaved as blocks, so bit scan can be // used to quickly extract ranges. diff --git a/src/xenia/gpu/spirv_shader_translator_fetch.cc b/src/xenia/gpu/spirv_shader_translator_fetch.cc index 8f5a74690..e0fd8440d 100644 --- a/src/xenia/gpu/spirv_shader_translator_fetch.cc +++ b/src/xenia/gpu/spirv_shader_translator_fetch.cc @@ -2168,7 +2168,6 @@ void SpirvShaderTranslator::ProcessTextureFetchInstruction( builder_->createBranch(&block_sign_merge); // Gamma. builder_->setBuildPoint(&block_sign_gamma_start); - // TODO(Triang3l): Gamma resolve target as sRGB sampling. spv::Id sample_result_component_gamma = PWLGammaToLinear(sample_result_component_unsigned, false); // Get the current build point for the phi operation not to assume diff --git a/src/xenia/gpu/spirv_shader_translator_rb.cc b/src/xenia/gpu/spirv_shader_translator_rb.cc index e19fdd540..6bc9fe11c 100644 --- a/src/xenia/gpu/spirv_shader_translator_rb.cc +++ b/src/xenia/gpu/spirv_shader_translator_rb.cc @@ -1253,7 +1253,7 @@ void SpirvShaderTranslator::CompleteFragmentShaderInMain() { // Convert to gamma space - this is incorrect, since it must be done // after blending on the Xbox 360, but this is just one of many blending // issues in the host render target path. - // TODO(Triang3l): Gamma as sRGB check. + // TODO(Triang3l): Gamma as unorm8 check. uint_vector_temp_.clear(); uint_vector_temp_.push_back(0); uint_vector_temp_.push_back(1); diff --git a/src/xenia/gpu/texture_cache.cc b/src/xenia/gpu/texture_cache.cc index 7ba729b89..8deb76a9d 100644 --- a/src/xenia/gpu/texture_cache.cc +++ b/src/xenia/gpu/texture_cache.cc @@ -293,7 +293,7 @@ void TextureCache::MarkRangeAsResolved(uint32_t start_unscaled, // Invalidate textures. Toggling individual textures between scaled and // unscaled also relies on invalidation through shared memory. - shared_memory().RangeWrittenByGpu(start_unscaled, length_unscaled, true); + shared_memory().RangeWrittenByGpu(start_unscaled, length_unscaled); } uint32_t TextureCache::GuestToHostSwizzle(uint32_t guest_swizzle, @@ -465,8 +465,6 @@ TextureCache::Texture::Texture(TextureCache& texture_cache, : texture_cache_(texture_cache), key_(key), guest_layout_(key.GetGuestLayout()), - base_resolved_(key.scaled_resolve), - mips_resolved_(key.scaled_resolve), last_usage_submission_index_(texture_cache.current_submission_index_), last_usage_time_(texture_cache.current_submission_time_), used_previous_(texture_cache.texture_used_last_), @@ -669,21 +667,17 @@ bool TextureCache::LoadTextureData(Texture& texture) { // its pages is invalidated, in this case we'll need the texture from the // shared memory to load the unscaled parts. // TODO(Triang3l): Load unscaled parts. - bool base_resolved = texture.GetBaseResolved(); if (base_outdated) { if (!shared_memory().RequestRange( texture_key.base_page << 12, - xe::align(texture.GetGuestBaseSize(), UINT32_C(16)), - texture_key.scaled_resolve ? nullptr : &base_resolved)) { + xe::align(texture.GetGuestBaseSize(), UINT32_C(16)))) { return false; } } - bool mips_resolved = texture.GetMipsResolved(); if (mips_outdated) { if (!shared_memory().RequestRange( texture_key.mip_page << 12, - xe::align(texture.GetGuestMipsSize(), UINT32_C(16)), - texture_key.scaled_resolve ? nullptr : &mips_resolved)) { + xe::align(texture.GetGuestMipsSize(), UINT32_C(16)))) { return false; } } @@ -708,14 +702,6 @@ bool TextureCache::LoadTextureData(Texture& texture) { return false; } - // Update the source of the texture (resolve vs. CPU or memexport) for - // purposes of handling piecewise gamma emulation via sRGB and for resolution - // scale in sampling offsets. - if (!texture_key.scaled_resolve) { - texture.SetBaseResolved(base_resolved); - texture.SetMipsResolved(mips_resolved); - } - // Mark the ranges as uploaded and watch them. This is needed for scaled // resolves as well to detect when the CPU wants to reuse the memory for a // regular texture or a vertex buffer, and thus the scaled resolve version is diff --git a/src/xenia/gpu/texture_cache.h b/src/xenia/gpu/texture_cache.h index a85a326b1..e7ec6faa5 100644 --- a/src/xenia/gpu/texture_cache.h +++ b/src/xenia/gpu/texture_cache.h @@ -110,14 +110,15 @@ class TextureCache { GetValidTextureBinding(fetch_constant_index); return binding ? binding->swizzled_signs : kSwizzledSignsUnsigned; } - bool IsActiveTextureResolved(uint32_t fetch_constant_index) const { + bool IsActiveTextureResolutionScaled(uint32_t fetch_constant_index) const { const TextureBinding* binding = GetValidTextureBinding(fetch_constant_index); if (!binding) { return false; } - return (binding->texture && binding->texture->IsResolved()) || - (binding->texture_signed && binding->texture_signed->IsResolved()); + return (binding->texture && binding->texture->key().scaled_resolve) || + (binding->texture_signed && + binding->texture_signed->key().scaled_resolve); } protected: @@ -218,18 +219,6 @@ class TextureCache { } uint64_t last_usage_time() const { return last_usage_time_; } - bool GetBaseResolved() const { return base_resolved_; } - void SetBaseResolved(bool base_resolved) { - assert_false(!base_resolved && key().scaled_resolve); - base_resolved_ = base_resolved; - } - bool GetMipsResolved() const { return mips_resolved_; } - void SetMipsResolved(bool mips_resolved) { - assert_false(!mips_resolved && key().scaled_resolve); - mips_resolved_ = mips_resolved; - } - bool IsResolved() const { return base_resolved_ || mips_resolved_; } - bool base_outdated( const std::unique_lock& global_lock) const { return base_outdated_; @@ -275,13 +264,6 @@ class TextureCache { Texture* used_previous_; Texture* used_next_; - // Whether the most up-to-date base / mips contain pages with data from a - // resolve operation (rather than from the CPU or memexport), primarily for - // choosing between piecewise linear gamma and sRGB when the former is - // emulated with the latter. - bool base_resolved_; - bool mips_resolved_; - // These are to be accessed within the global critical region to synchronize // with shared memory. // Whether the recent base level data needs reloading from the memory. diff --git a/src/xenia/gpu/vulkan/vulkan_command_processor.cc b/src/xenia/gpu/vulkan/vulkan_command_processor.cc index 53a1548ee..7df306c12 100644 --- a/src/xenia/gpu/vulkan/vulkan_command_processor.cc +++ b/src/xenia/gpu/vulkan/vulkan_command_processor.cc @@ -2597,7 +2597,7 @@ bool VulkanCommandProcessor::IssueDraw(xenos::PrimitiveType prim_type, // Invalidate textures in memexported memory and watch for changes. for (const draw_util::MemExportRange& memexport_range : memexport_ranges_) { shared_memory_->RangeWrittenByGpu(memexport_range.base_address_dwords << 2, - memexport_range.size_bytes, false); + memexport_range.size_bytes); } return true; @@ -3499,11 +3499,13 @@ void VulkanCommandProcessor::UpdateSystemConstantValues( flags |= uint32_t(alpha_test_function) << SpirvShaderTranslator::kSysFlag_AlphaPassIfLess_Shift; // Gamma writing. - // TODO(Triang3l): Gamma as sRGB check. - for (uint32_t i = 0; i < xenos::kMaxColorRenderTargets; ++i) { - if (color_infos[i].color_format == - xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA) { - flags |= SpirvShaderTranslator::kSysFlag_ConvertColor0ToGamma << i; + // TODO(Triang3l): Gamma as unorm8 check. + if (!edram_fragment_shader_interlock) { + for (uint32_t i = 0; i < xenos::kMaxColorRenderTargets; ++i) { + if (color_infos[i].color_format == + xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA) { + flags |= SpirvShaderTranslator::kSysFlag_ConvertColor0ToGamma << i; + } } } if (edram_fragment_shader_interlock && depth_stencil_enabled) { diff --git a/src/xenia/gpu/vulkan/vulkan_render_target_cache.cc b/src/xenia/gpu/vulkan/vulkan_render_target_cache.cc index 47422876a..4ae8ee266 100644 --- a/src/xenia/gpu/vulkan/vulkan_render_target_cache.cc +++ b/src/xenia/gpu/vulkan/vulkan_render_target_cache.cc @@ -523,6 +523,12 @@ bool VulkanRenderTargetCache::Initialize(uint32_t shared_memory_binding_count) { if (path_ == Path::kHostRenderTargets) { // Host render targets. + // TODO(Triang3l): When color space conversion is implemented in the + // ownership transfer and resolve dump shaders, allow + // `gamma_render_target_as_unorm16` if VK_FORMAT_R16G16B16A16_UNORM supports + // the SAMPLED_IMAGE | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND features. + gamma_render_target_as_unorm16_ = false; + depth_float24_round_ = cvars::depth_float24_round; // Host depth storing pipeline layout. @@ -724,8 +730,8 @@ bool VulkanRenderTargetCache::Initialize(uint32_t shared_memory_binding_count) { } else if (path_ == Path::kPixelShaderInterlock) { // Pixel (fragment) shader interlock. - // Blending is done in linear space directly in shaders. - gamma_render_target_as_srgb_ = false; + // Piecewise linear gamma is 8-bit with programmable blending. + gamma_render_target_as_unorm16_ = false; // Always true float24 depth rounded to the nearest even. depth_float24_round_ = true; @@ -1290,11 +1296,6 @@ bool VulkanRenderTargetCache::Update( depth_and_color_render_targets, last_update_transfers()); - uint32_t render_targets_are_srgb = - gamma_render_target_as_srgb_ - ? last_update_accumulated_color_targets_are_gamma() - : 0; - if (depth_and_color_render_targets[0]) { render_pass_key.depth_and_color_used |= 1 << 0; render_pass_key.depth_format = @@ -1303,30 +1304,22 @@ bool VulkanRenderTargetCache::Update( if (depth_and_color_render_targets[1]) { render_pass_key.depth_and_color_used |= 1 << 1; render_pass_key.color_0_view_format = - (render_targets_are_srgb & (1 << 0)) - ? xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA - : depth_and_color_render_targets[1]->key().GetColorFormat(); + depth_and_color_render_targets[1]->key().GetColorFormat(); } if (depth_and_color_render_targets[2]) { render_pass_key.depth_and_color_used |= 1 << 2; render_pass_key.color_1_view_format = - (render_targets_are_srgb & (1 << 1)) - ? xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA - : depth_and_color_render_targets[2]->key().GetColorFormat(); + depth_and_color_render_targets[2]->key().GetColorFormat(); } if (depth_and_color_render_targets[3]) { render_pass_key.depth_and_color_used |= 1 << 3; render_pass_key.color_2_view_format = - (render_targets_are_srgb & (1 << 2)) - ? xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA - : depth_and_color_render_targets[3]->key().GetColorFormat(); + depth_and_color_render_targets[3]->key().GetColorFormat(); } if (depth_and_color_render_targets[4]) { render_pass_key.depth_and_color_used |= 1 << 4; render_pass_key.color_3_view_format = - (render_targets_are_srgb & (1 << 3)) - ? xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA - : depth_and_color_render_targets[4]->key().GetColorFormat(); + depth_and_color_render_targets[4]->key().GetColorFormat(); } const Framebuffer* framebuffer = last_update_framebuffer_; @@ -1586,8 +1579,8 @@ VkFormat VulkanRenderTargetCache::GetColorVulkanFormat( case xenos::ColorRenderTargetFormat::k_8_8_8_8: return VK_FORMAT_R8G8B8A8_UNORM; case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: - return gamma_render_target_as_srgb_ ? VK_FORMAT_R8G8B8A8_SRGB - : VK_FORMAT_R8G8B8A8_UNORM; + return gamma_render_target_as_unorm16_ ? VK_FORMAT_R16G16B16A16_UNORM + : VK_FORMAT_R8G8B8A8_UNORM; case xenos::ColorRenderTargetFormat::k_2_10_10_10: case xenos::ColorRenderTargetFormat::k_2_10_10_10_AS_10_10_10_10: return VK_FORMAT_A8B8G8R8_UNORM_PACK32; @@ -1658,9 +1651,6 @@ VulkanRenderTargetCache::VulkanRenderTarget::~VulkanRenderTarget() { if (view_color_transfer_separate_ != VK_NULL_HANDLE) { dfn.vkDestroyImageView(device, view_color_transfer_separate_, nullptr); } - if (view_srgb_ != VK_NULL_HANDLE) { - dfn.vkDestroyImageView(device, view_srgb_, nullptr); - } if (view_stencil_ != VK_NULL_HANDLE) { dfn.vkDestroyImageView(device, view_stencil_, nullptr); } @@ -1672,6 +1662,10 @@ VulkanRenderTargetCache::VulkanRenderTarget::~VulkanRenderTarget() { dfn.vkFreeMemory(device, memory_, nullptr); } +bool VulkanRenderTargetCache::IsGammaFormatHostStorageSeparate() const { + return gamma_render_target_as_unorm16_; +} + uint32_t VulkanRenderTargetCache::GetMaxRenderTargetWidth() const { const ui::vulkan::VulkanDevice::Properties& device_properties = command_processor_.GetVulkanDevice()->properties(); @@ -1721,7 +1715,6 @@ RenderTargetCache::RenderTarget* VulkanRenderTargetCache::CreateRenderTarget( image_create_info.pQueueFamilyIndices = nullptr; image_create_info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; VkFormat transfer_format; - bool is_srgb_view_needed = false; if (key.is_depth) { image_create_info.format = GetDepthVulkanFormat(key.GetDepthFormat()); transfer_format = image_create_info.format; @@ -1730,11 +1723,7 @@ RenderTargetCache::RenderTarget* VulkanRenderTargetCache::CreateRenderTarget( xenos::ColorRenderTargetFormat color_format = key.GetColorFormat(); image_create_info.format = GetColorVulkanFormat(color_format); transfer_format = GetColorOwnershipTransferVulkanFormat(color_format); - is_srgb_view_needed = - gamma_render_target_as_srgb_ && - (color_format == xenos::ColorRenderTargetFormat::k_8_8_8_8 || - color_format == xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA); - if (image_create_info.format != transfer_format || is_srgb_view_needed) { + if (image_create_info.format != transfer_format) { image_create_info.flags |= VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT; } image_create_info.usage |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; @@ -1788,7 +1777,6 @@ RenderTargetCache::RenderTarget* VulkanRenderTargetCache::CreateRenderTarget( } VkImageView view_depth_stencil = VK_NULL_HANDLE; VkImageView view_stencil = VK_NULL_HANDLE; - VkImageView view_srgb = VK_NULL_HANDLE; VkImageView view_color_transfer_separate = VK_NULL_HANDLE; if (key.is_depth) { view_create_info.subresourceRange.aspectMask = @@ -1822,22 +1810,6 @@ RenderTargetCache::RenderTarget* VulkanRenderTargetCache::CreateRenderTarget( return nullptr; } } else { - if (is_srgb_view_needed) { - view_create_info.format = VK_FORMAT_R8G8B8A8_SRGB; - if (dfn.vkCreateImageView(device, &view_create_info, nullptr, - &view_srgb) != VK_SUCCESS) { - XELOGE( - "VulkanRenderTarget: Failed to create an sRGB view for a {}x{} " - "{}xMSAA render target", - image_create_info.extent.width, image_create_info.extent.height, - uint32_t(1) << uint32_t(key.msaa_samples), - xenos::GetColorRenderTargetFormatName(key.GetColorFormat())); - dfn.vkDestroyImageView(device, view_depth_color, nullptr); - dfn.vkDestroyImage(device, image, nullptr); - dfn.vkFreeMemory(device, memory, nullptr); - return nullptr; - } - } if (transfer_format != image_create_info.format) { view_create_info.format = transfer_format; if (dfn.vkCreateImageView(device, &view_create_info, nullptr, @@ -1847,9 +1819,6 @@ RenderTargetCache::RenderTarget* VulkanRenderTargetCache::CreateRenderTarget( "{}xMSAA {} render target", image_create_info.extent.width, image_create_info.extent.height, uint32_t(1) << uint32_t(key.msaa_samples), key.GetFormatName()); - if (view_srgb != VK_NULL_HANDLE) { - dfn.vkDestroyImageView(device, view_srgb, nullptr); - } dfn.vkDestroyImageView(device, view_depth_color, nullptr); dfn.vkDestroyImage(device, image, nullptr); dfn.vkFreeMemory(device, memory, nullptr); @@ -1870,9 +1839,6 @@ RenderTargetCache::RenderTarget* VulkanRenderTargetCache::CreateRenderTarget( if (view_color_transfer_separate != VK_NULL_HANDLE) { dfn.vkDestroyImageView(device, view_color_transfer_separate, nullptr); } - if (view_srgb != VK_NULL_HANDLE) { - dfn.vkDestroyImageView(device, view_srgb, nullptr); - } dfn.vkDestroyImageView(device, view_depth_color, nullptr); dfn.vkDestroyImage(device, image, nullptr); dfn.vkFreeMemory(device, memory, nullptr); @@ -1920,7 +1886,7 @@ RenderTargetCache::RenderTarget* VulkanRenderTargetCache::CreateRenderTarget( 0, nullptr); return new VulkanRenderTarget(key, *this, image, memory, view_depth_color, - view_depth_stencil, view_stencil, view_srgb, + view_depth_stencil, view_stencil, view_color_transfer_separate, descriptor_set_index_transfer_source); } diff --git a/src/xenia/gpu/vulkan/vulkan_render_target_cache.h b/src/xenia/gpu/vulkan/vulkan_render_target_cache.h index aa7ed5c7d..f23a3abc4 100644 --- a/src/xenia/gpu/vulkan/vulkan_render_target_cache.h +++ b/src/xenia/gpu/vulkan/vulkan_render_target_cache.h @@ -58,7 +58,6 @@ class VulkanRenderTargetCache final : public RenderTargetCache { // even for kD24S8. xenos::DepthRenderTargetFormat depth_format : xenos::kDepthRenderTargetFormatBits; // 8 - // Linear or sRGB included if host sRGB is used. xenos::ColorRenderTargetFormat color_0_view_format : xenos::kColorRenderTargetFormatBits; // 12 xenos::ColorRenderTargetFormat color_1_view_format @@ -183,6 +182,8 @@ class VulkanRenderTargetCache final : public RenderTargetCache { bool* is_integer_out = nullptr) const; protected: + bool IsGammaFormatHostStorageSeparate() const override; + uint32_t GetMaxRenderTargetWidth() const override; uint32_t GetMaxRenderTargetHeight() const override; @@ -333,7 +334,6 @@ class VulkanRenderTargetCache final : public RenderTargetCache { VkImage image, VkDeviceMemory memory, VkImageView view_depth_color, VkImageView view_depth_stencil, VkImageView view_stencil, - VkImageView view_srgb, VkImageView view_color_transfer_separate, size_t descriptor_set_index_transfer_source) : RenderTarget(key), @@ -343,7 +343,6 @@ class VulkanRenderTargetCache final : public RenderTargetCache { view_depth_color_(view_depth_color), view_depth_stencil_(view_depth_stencil), view_stencil_(view_stencil), - view_srgb_(view_srgb), view_color_transfer_separate_(view_color_transfer_separate), descriptor_set_index_transfer_source_( descriptor_set_index_transfer_source) {} @@ -418,7 +417,6 @@ class VulkanRenderTargetCache final : public RenderTargetCache { // Optional views. VkImageView view_depth_stencil_; VkImageView view_stencil_; - VkImageView view_srgb_; VkImageView view_color_transfer_separate_; // 2 sampled images for depth / stencil, 1 sampled image for color. @@ -863,7 +861,7 @@ class VulkanRenderTargetCache final : public RenderTargetCache { void DumpRenderTargets(uint32_t dump_base, uint32_t dump_row_length_used, uint32_t dump_rows, uint32_t dump_pitch); - bool gamma_render_target_as_srgb_ = false; + bool gamma_render_target_as_unorm16_ = false; bool depth_unorm24_vulkan_format_supported_ = false; bool depth_float24_round_ = false; diff --git a/src/xenia/gpu/vulkan/vulkan_shared_memory.cc b/src/xenia/gpu/vulkan/vulkan_shared_memory.cc index 3a195ff64..4e02d3285 100644 --- a/src/xenia/gpu/vulkan/vulkan_shared_memory.cc +++ b/src/xenia/gpu/vulkan/vulkan_shared_memory.cc @@ -410,7 +410,7 @@ bool VulkanSharedMemory::UploadRanges( break; } MakeRangeValid(upload_range_start << page_size_log2(), - uint32_t(upload_buffer_size), false, false); + uint32_t(upload_buffer_size), false); std::memcpy( upload_buffer_mapping, memory().TranslatePhysical(upload_range_start << page_size_log2()),