[GPU] EDRAM looped addressing (resolves #2031)

This commit is contained in:
Triang3l 2022-07-22 23:51:29 +03:00
parent 74d83e4af8
commit 3c12814276
66 changed files with 44142 additions and 43718 deletions

View File

@ -3287,13 +3287,19 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) {
// Apply the source 32bpp tile index.
// r1.w = destination to source EDRAM tile adjustment
a.OpIBFE(dxbc::Dest::R(1, 0b1000), dxbc::Src::LU(xenos::kEdramBaseTilesBits),
a.OpIBFE(dxbc::Dest::R(1, 0b1000),
dxbc::Src::LU(xenos::kEdramBaseTilesBits + 1),
dxbc::Src::LU(xenos::kEdramPitchTilesBits * 2),
dxbc::Src::CB(cbuffer_index_address, kTransferCBVRegisterAddress, 0,
dxbc::Src::kXXXX));
// r1.w = 32bpp tile index within the source
// r1.w = 32bpp tile index within the source, or the tile index within the
// source minus the EDRAM tile count if transferring across addressing
// wrapping (if negative)
a.OpIAdd(dxbc::Dest::R(1, 0b1000), dxbc::Src::R(0, dxbc::Src::kZZZZ),
dxbc::Src::R(1, dxbc::Src::kWWWW));
// r1.w = 32bpp tile index within the source
a.OpAnd(dxbc::Dest::R(1, 0b1000), dxbc::Src::R(1, dxbc::Src::kWWWW),
dxbc::Src::LU(xenos::kEdramTileCount - 1));
// r2.x = source pitch in 32bpp tiles
a.OpUBFE(dxbc::Dest::R(2, 0b0001), dxbc::Src::LU(xenos::kEdramPitchTilesBits),
dxbc::Src::LU(xenos::kEdramPitchTilesBits),
@ -3887,6 +3893,9 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) {
}
// Combine the tile sample index and the tile index into buffer
// address to r0.x.
// The tile index doesn't need to be wrapped, as the host depth is
// written to the beginning of the buffer, without the base
// offset.
a.OpUMAd(dxbc::Dest::R(0, 0b0001),
dxbc::Src::LU(tile_width_samples),
dxbc::Src::R(0, dxbc::Src::kYYYY),
@ -3906,16 +3915,23 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) {
// source.
// r0.w = destination to host depth source EDRAM tile adjustment
a.OpIBFE(dxbc::Dest::R(0, 0b1000),
dxbc::Src::LU(xenos::kEdramBaseTilesBits),
dxbc::Src::LU(xenos::kEdramBaseTilesBits + 1),
dxbc::Src::LU(xenos::kEdramPitchTilesBits * 2),
dxbc::Src::CB(cbuffer_index_host_depth_address,
kTransferCBVRegisterHostDepthAddress, 0,
dxbc::Src::kXXXX));
// r0.z = tile index relative to the host depth source base
// r0.z = tile index relative to the host depth source base, or
// the tile index within the host depth source minus the
// EDRAM tile count if transferring across addressing
// wrapping (if negative)
// r0.w = free
a.OpIAdd(dxbc::Dest::R(0, 0b0100),
dxbc::Src::R(0, dxbc::Src::kZZZZ),
dxbc::Src::R(0, dxbc::Src::kWWWW));
// r0.z = tile index relative to the host depth source base
a.OpAnd(dxbc::Dest::R(0, 0b0100),
dxbc::Src::R(0, dxbc::Src::kZZZZ),
dxbc::Src::LU(xenos::kEdramTileCount - 1));
// Convert position and sample index from within the destination
// tile to within the host depth source tile, like for the guest
// render target, but for 32bpp -> 32bpp only.
@ -5943,28 +5959,38 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline(
dxbc::Src::R(1, dxbc::Src::kXXXX),
dxbc::Src::R(0, dxbc::Src::kZZZZ));
// Extract the index of the first tile of the dispatch in the EDRAM to r0.z.
// Extract the index of the first tile (taking EDRAM addressing wrapping into
// account) of the dispatch in the EDRAM to r0.z.
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = first EDRAM tile index in the dispatch
// r0.w = tile index relative to the dump rectangle base
a.OpUBFE(dxbc::Dest::R(0, 0b0100), dxbc::Src::LU(xenos::kEdramBaseTilesBits),
dxbc::Src::LU(0),
a.OpUBFE(dxbc::Dest::R(0, 0b0100),
dxbc::Src::LU(xenos::kEdramBaseTilesBits + 1), dxbc::Src::LU(0),
dxbc::Src::CB(kDumpCbufferOffsets, kDumpCbufferOffsets, 0,
dxbc::Src::kXXXX));
// Add the base tile in the dispatch to the dispatch-local tile index to r0.w.
// Add the base tile in the dispatch to the dispatch-local tile index to r0.w,
// not wrapping yet so in case of a wraparound, the address relative to the
// base in the texture after subtraction of the base won't be negative.
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = free
// r0.w = tile index in the EDRAM
// r0.w = non-wrapped tile index in the EDRAM
a.OpIAdd(dxbc::Dest::R(0, 0b1000), dxbc::Src::R(0, dxbc::Src::kWWWW),
dxbc::Src::R(0, dxbc::Src::kZZZZ));
// Wrap the address of the tile in the EDRAM to r0.z.
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = wrapped tile index in the EDRAM
// r0.w = non-wrapped tile index in the EDRAM
a.OpAnd(dxbc::Dest::R(0, 0b0100), dxbc::Src::R(0, dxbc::Src::kWWWW),
dxbc::Src::LU(xenos::kEdramTileCount - 1));
// Convert the tile index to samples and add the X sample index to it to r0.z.
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = tile sample offset in the EDRAM plus X sample offset
// r0.w = tile index in the EDRAM
a.OpUMAd(dxbc::Dest::R(0, 0b0100), dxbc::Src::R(0, dxbc::Src::kWWWW),
// r0.w = non-wrapped tile index in the EDRAM
a.OpUMAd(dxbc::Dest::R(0, 0b0100), dxbc::Src::R(0, dxbc::Src::kZZZZ),
dxbc::Src::LU(
draw_resolution_scale_x * draw_resolution_scale_y *
(xenos::kEdramTileWidthSamples >> uint32_t(format_is_64bpp)) *
@ -5975,7 +6001,7 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline(
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = sample offset in the EDRAM without the depth column swapping
// r0.w = tile index in the EDRAM
// r0.w = non-wrapped tile index in the EDRAM
a.OpUMAd(dxbc::Dest::R(0, 0b0100), dxbc::Src::R(0, dxbc::Src::kYYYY),
dxbc::Src::LU(tile_width), dxbc::Src::R(0, dxbc::Src::kZZZZ));
if (key.is_depth) {
@ -5984,7 +6010,7 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline(
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = sample offset in the EDRAM without the depth column swapping
// r0.w = tile index in the EDRAM
// r0.w = non-wrapped tile index in the EDRAM
// r1.x = 0xFFFFFFFF if in the right 40-sample half, 0 otherwise
a.OpUGE(dxbc::Dest::R(1, 0b0001), dxbc::Src::R(0, dxbc::Src::kXXXX),
dxbc::Src::LU(tile_width_half));
@ -5992,7 +6018,7 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline(
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = sample offset in the EDRAM without the depth column swapping
// r0.w = tile index in the EDRAM
// r0.w = non-wrapped tile index in the EDRAM
// r1.x = depth half-tile flipping offset
a.OpMovC(dxbc::Dest::R(1, 0b0001), dxbc::Src::R(1, dxbc::Src::kXXXX),
dxbc::Src::LI(-int32_t(tile_width_half)),
@ -6002,7 +6028,7 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline(
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = sample offset in the EDRAM
// r0.w = tile index in the EDRAM
// r0.w = non-wrapped tile index in the EDRAM
// r1.x = free
a.OpIAdd(dxbc::Dest::R(0, 0b0100), dxbc::Src::R(0, dxbc::Src::kZZZZ),
dxbc::Src::R(1, dxbc::Src::kXXXX));
@ -6012,10 +6038,10 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline(
// r0.x = X sample position within the tile
// r0.y = Y sample position within the tile
// r0.z = sample offset in the EDRAM
// r0.w = tile index in the EDRAM
// r0.w = non-wrapped tile index in the EDRAM
// r1.x = source texture base tile index
a.OpUBFE(dxbc::Dest::R(1, 0b0001), dxbc::Src::LU(xenos::kEdramBaseTilesBits),
dxbc::Src::LU(xenos::kEdramBaseTilesBits),
dxbc::Src::LU(xenos::kEdramBaseTilesBits + 1),
dxbc::Src::CB(kDumpCbufferOffsets, kDumpCbufferOffsets, 0,
dxbc::Src::kXXXX));
// Get the linear tile index within the source texture to r0.w.

View File

@ -469,16 +469,13 @@ class D3D12RenderTargetCache final : public RenderTargetCache {
// All in tiles.
uint32_t dest_pitch : xenos::kEdramPitchTilesBits;
uint32_t source_pitch : xenos::kEdramPitchTilesBits;
// Safe to use 12 bits for signed difference - no ownership transfer can
// ever occur between render targets with EDRAM base >= 2048 as this would
// result in 0-length spans. 10 + 10 + 12 is exactly 32, any more bits,
// and more root 32-bit constants will be used.
// Destination base in tiles minus source base in tiles (not vice versa
// because this is a transform of the coordinate system, not addresses
// themselves).
// + 1 bit because this is a signed difference between two EDRAM bases.
// 0 for host_depth_source_is_copy (ignored in this case anyway as
// destination == source anyway).
int32_t source_to_dest : xenos::kEdramBaseTilesBits;
int32_t source_to_dest : xenos::kEdramBaseTilesBits + 1;
};
TransferAddressConstant() : constant(0) {
static_assert_size(*this, sizeof(constant));
@ -576,7 +573,9 @@ class D3D12RenderTargetCache final : public RenderTargetCache {
union DumpOffsets {
uint32_t offsets;
struct {
uint32_t dispatch_first_tile : xenos::kEdramBaseTilesBits;
// May be beyond the EDRAM tile count in case of EDRAM addressing
// wrapping, thus + 1 bit.
uint32_t dispatch_first_tile : xenos::kEdramBaseTilesBits + 1;
uint32_t source_base_tiles : xenos::kEdramBaseTilesBits;
};
DumpOffsets() : offsets(0) { static_assert_size(*this, sizeof(offsets)); }

View File

@ -1045,6 +1045,8 @@ bool GetResolveInfo(const RegisterFile& regs, const Memory& memory,
depth_edram_info.pitch_tiles = surface_pitch_tiles;
depth_edram_info.msaa_samples = rb_surface_info.msaa_samples;
depth_edram_info.is_depth = 1;
// If wrapping happens, it's fine, it doesn't matter how many times and
// where modulo xenos::kEdramTileCount is applied in this context.
depth_edram_info.base_tiles =
rb_depth_info.depth_base + edram_base_offset_tiles;
depth_edram_info.format = uint32_t(rb_depth_info.depth_format);
@ -1067,6 +1069,8 @@ bool GetResolveInfo(const RegisterFile& regs, const Memory& memory,
color_edram_info.pitch_tiles = surface_pitch_tiles << is_64bpp;
color_edram_info.msaa_samples = rb_surface_info.msaa_samples;
color_edram_info.is_depth = 0;
// If wrapping happens, it's fine, it doesn't matter how many times and
// where modulo xenos::kEdramTileCount is applied in this context.
color_edram_info.base_tiles =
color_info.color_base + (edram_base_offset_tiles << is_64bpp);
color_edram_info.format = uint32_t(color_info.color_format);

View File

@ -1143,7 +1143,9 @@ class DxbcShaderTranslator : public ShaderTranslator {
// 8:11 - Whether color buffers have been written to, if not written on the
// taken execution path, don't export according to Direct3D 9 register
// documentation (some games rely on this behavior).
// Y - Absolute resolution-scaled EDRAM offset for depth / stencil, in dwords.
// Y - Absolute resolution-scaled EDRAM offset for depth / stencil, in dwords,
// before and during depth testing. During color writing, when the depth /
// stencil address is not needed anymore, current color sample address.
// Z - Base-relative resolution-scaled EDRAM offset for 32bpp color data, in
// dwords.
// W - Base-relative resolution-scaled EDRAM offset for 64bpp color data, in

View File

@ -449,7 +449,7 @@ void DxbcShaderTranslator::StartPixelShader_LoadROVParameters() {
}
// Add the EDRAM base for depth/stencil.
// system_temp_rov_params_.y = EDRAM depth / stencil address
// system_temp_rov_params_.y = non-wrapped EDRAM depth / stencil address
// system_temp_rov_params_.z = dword sample 0 offset within a 32bpp surface if
// needed
// system_temp_rov_params_.w = dword sample 0 offset within a 64bpp surface if
@ -460,6 +460,15 @@ void DxbcShaderTranslator::StartPixelShader_LoadROVParameters() {
SystemConstants::Index::kEdramDepthBaseDwordsScaled,
offsetof(SystemConstants, edram_depth_base_dwords_scaled),
dxbc::Src::kXXXX));
// Wrap EDRAM addressing for depth/stencil.
// system_temp_rov_params_.y = EDRAM depth / stencil address
// system_temp_rov_params_.z = dword sample 0 offset within a 32bpp surface if
// needed
// system_temp_rov_params_.w = dword sample 0 offset within a 64bpp surface if
// needed
a_.OpUDiv(dxbc::Dest::Null(), dxbc::Dest::R(system_temp_rov_params_, 0b0010),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY),
dxbc::Src::LU(tile_size * xenos::kEdramTileCount));
// ***************************************************************************
// Sample coverage to system_temp_rov_params_.x.
@ -2146,6 +2155,9 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
ROV_DepthStencilTest();
}
// system_temp_rov_params_.y (the depth / stencil sample address) is not
// needed anymore, can be used for color writing.
if (!is_depth_only_pixel_shader_) {
// Check if any sample is still covered after depth testing and writing,
// skip color writing completely in this case.
@ -2160,6 +2172,9 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
// Write color values.
uint32_t shader_writes_color_targets =
current_shader().writes_color_targets();
uint32_t edram_size_32bpp_samples =
(xenos::kEdramTileHeightSamples * draw_resolution_scale_y_) * tile_width *
xenos::kEdramTileCount;
for (uint32_t i = 0; i < 4; ++i) {
if (!(shader_writes_color_targets & (1 << i))) {
continue;
@ -2207,14 +2222,35 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
offsetof(SystemConstants, color_exp_bias) + sizeof(float) * i,
dxbc::Src::kXXXX));
// Add the EDRAM bases of the render target to system_temp_rov_params_.zw.
a_.OpIAdd(dxbc::Dest::R(system_temp_rov_params_, 0b1100),
dxbc::Src::R(system_temp_rov_params_),
dxbc::Src rt_format_flags_src(LoadSystemConstant(
SystemConstants::Index::kEdramRTFormatFlags,
offsetof(SystemConstants, edram_rt_format_flags) + sizeof(uint32_t) * i,
dxbc::Src::kXXXX));
// Load whether the render target is 64bpp to system_temp_rov_params_.y to
// get the needed relative sample address.
a_.OpAnd(dxbc::Dest::R(system_temp_rov_params_, 0b0010),
rt_format_flags_src, dxbc::Src::LU(kRTFormatFlag_64bpp));
// Choose the relative sample address for the render target to
// system_temp_rov_params_.y.
a_.OpMovC(dxbc::Dest::R(system_temp_rov_params_, 0b0010),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kWWWW),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kZZZZ));
// Add the EDRAM base of the render target to system_temp_rov_params_.y.
a_.OpIAdd(dxbc::Dest::R(system_temp_rov_params_, 0b0010),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY),
LoadSystemConstant(
SystemConstants::Index::kEdramRTBaseDwordsScaled,
offsetof(SystemConstants, edram_rt_base_dwords_scaled) +
sizeof(uint32_t) * i,
dxbc::Src::kXXXX));
// Wrap EDRAM addressing for the color render target to get the final sample
// address in the EDRAM to system_temp_rov_params_.y.
a_.OpUDiv(dxbc::Dest::Null(),
dxbc::Dest::R(system_temp_rov_params_, 0b0010),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY),
dxbc::Src::LU(edram_size_32bpp_samples));
dxbc::Src rt_blend_factors_ops_src(LoadSystemConstant(
SystemConstants::Index::kEdramRTBlendFactorsOps,
@ -2225,10 +2261,6 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
SystemConstants::Index::kEdramRTClamp,
offsetof(SystemConstants, edram_rt_clamp) + sizeof(float) * 4 * i,
dxbc::Src::kXYZW));
dxbc::Src rt_format_flags_src(LoadSystemConstant(
SystemConstants::Index::kEdramRTFormatFlags,
offsetof(SystemConstants, edram_rt_format_flags) + sizeof(uint32_t) * i,
dxbc::Src::kXXXX));
// Get if not blending to pack the color once for all 4 samples.
// temp.x = whether blending is disabled.
a_.OpIEq(temp_x_dest, rt_blend_factors_ops_src, dxbc::Src::LU(0x00010001));
@ -2341,28 +2373,29 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
// Loading the previous color to temp.zw.
// *********************************************************************
// Get if the format is 64bpp to temp.z.
// temp.z = whether the render target is 64bpp.
a_.OpAnd(temp_z_dest, rt_format_flags_src,
// Load the 32bpp color, or the lower 32 bits of the 64bpp color, to
// temp.z.
// temp.z = 32-bit packed color or lower 32 bits of the packed color.
if (uav_index_edram_ == kBindingIndexUnallocated) {
uav_index_edram_ = uav_count_++;
}
a_.OpLdUAVTyped(
temp_z_dest,
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY), 1,
dxbc::Src::U(uav_index_edram_, uint32_t(UAVRegister::kEdram),
dxbc::Src::kXXXX));
// Get if the format is 64bpp to temp.w.
// temp.w = whether the render target is 64bpp.
a_.OpAnd(temp_w_dest, rt_format_flags_src,
dxbc::Src::LU(kRTFormatFlag_64bpp));
// Check if the format is 64bpp.
// temp.z = free.
a_.OpIf(true, temp_z_src);
// temp.w = free.
a_.OpIf(true, temp_w_src);
{
// Load the lower 32 bits of the 64bpp color to temp.z.
// temp.z = lower 32 bits of the packed color.
if (uav_index_edram_ == kBindingIndexUnallocated) {
uav_index_edram_ = uav_count_++;
}
a_.OpLdUAVTyped(
temp_z_dest,
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kWWWW), 1,
dxbc::Src::U(uav_index_edram_, uint32_t(UAVRegister::kEdram),
dxbc::Src::kXXXX));
// Get the address of the upper 32 bits of the color to temp.w.
// temp.w = address of the upper 32 bits of the packed color.
a_.OpIAdd(temp_w_dest,
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kWWWW),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY),
dxbc::Src::LU(1));
// Load the upper 32 bits of the 64bpp color to temp.w.
// temp.zw = packed destination color/alpha.
@ -2377,16 +2410,6 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
// The color is 32bpp.
a_.OpElse();
{
// Load the 32bpp color to temp.z.
// temp.z = packed 32bpp destination color.
if (uav_index_edram_ == kBindingIndexUnallocated) {
uav_index_edram_ = uav_count_++;
}
a_.OpLdUAVTyped(
temp_z_dest,
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kZZZZ), 1,
dxbc::Src::U(uav_index_edram_, uint32_t(UAVRegister::kEdram),
dxbc::Src::kXXXX));
// Break register dependency in temp.w if the color is 32bpp.
// temp.zw = packed destination color/alpha.
a_.OpMov(temp_w_dest, dxbc::Src::LU(0));
@ -2891,6 +2914,14 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
// Writing the color
// ***********************************************************************
// Store the 32bpp color or the lower 32 bits of the 64bpp color.
if (uav_index_edram_ == kBindingIndexUnallocated) {
uav_index_edram_ = uav_count_++;
}
a_.OpStoreUAVTyped(
dxbc::Dest::U(uav_index_edram_, uint32_t(UAVRegister::kEdram)),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY), 1,
temp_x_src);
// Get if the format is 64bpp to temp.z.
// temp.z = whether the render target is 64bpp.
a_.OpAnd(temp_z_dest, rt_format_flags_src,
@ -2899,19 +2930,11 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
// temp.z = free.
a_.OpIf(true, temp_z_src);
{
// Store the lower 32 bits of the 64bpp color.
if (uav_index_edram_ == kBindingIndexUnallocated) {
uav_index_edram_ = uav_count_++;
}
a_.OpStoreUAVTyped(
dxbc::Dest::U(uav_index_edram_, uint32_t(UAVRegister::kEdram)),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kWWWW), 1,
temp_x_src);
// Get the address of the upper 32 bits of the color to temp.z (can't
// use temp.x because components when not blending, packing is done once
// for all samples, so it has to be preserved).
a_.OpIAdd(temp_z_dest,
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kWWWW),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY),
dxbc::Src::LU(1));
// Store the upper 32 bits of the 64bpp color.
if (uav_index_edram_ == kBindingIndexUnallocated) {
@ -2921,19 +2944,7 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
dxbc::Dest::U(uav_index_edram_, uint32_t(UAVRegister::kEdram)),
temp_z_src, 1, temp_y_src);
}
// The color is 32bpp.
a_.OpElse();
{
// Store the 32bpp color.
if (uav_index_edram_ == kBindingIndexUnallocated) {
uav_index_edram_ = uav_count_++;
}
a_.OpStoreUAVTyped(
dxbc::Dest::U(uav_index_edram_, uint32_t(UAVRegister::kEdram)),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kZZZZ), 1,
temp_x_src);
}
// Close the 64bpp/32bpp conditional.
// Close the 64bpp conditional.
a_.OpEndIf();
// ***********************************************************************
@ -2946,23 +2957,16 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() {
// Go to the next sample (samples are at +0, +(80*scale_x), +1,
// +(80*scale_x+1), so need to do +(80*scale_x), -(80*scale_x-1),
// +(80*scale_x) and -(80*scale_x+1) after each sample).
int32_t next_sample_distance =
(j & 1) ? -int32_t(tile_width) + 2 - j : int32_t(tile_width);
a_.OpIAdd(
dxbc::Dest::R(system_temp_rov_params_, 0b1100),
dxbc::Src::R(system_temp_rov_params_),
dxbc::Src::LI(0, 0, next_sample_distance, next_sample_distance));
// Though no need to do this for the last sample as for the next render
// target, the address will be recalculated.
if (j < 3) {
a_.OpIAdd(dxbc::Dest::R(system_temp_rov_params_, 0b0010),
dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY),
dxbc::Src::LI((j & 1) ? -int32_t(tile_width) + 2 - j
: int32_t(tile_width)));
}
}
// Revert adding the EDRAM bases of the render target to
// system_temp_rov_params_.zw.
a_.OpIAdd(dxbc::Dest::R(system_temp_rov_params_, 0b1100),
dxbc::Src::R(system_temp_rov_params_),
-LoadSystemConstant(
SystemConstants::Index::kEdramRTBaseDwordsScaled,
offsetof(SystemConstants, edram_rt_base_dwords_scaled) +
sizeof(uint32_t) * i,
dxbc::Src::kXXXX));
// Close the render target write check.
a_.OpEndIf();
}

View File

@ -684,7 +684,11 @@ static_assert_size(RB_COLORCONTROL, sizeof(uint32_t));
union alignas(uint32_t) RB_COLOR_INFO {
uint32_t value;
struct {
uint32_t color_base : 12; // +0 in tiles.
// The original R400 structure has 12-bit color_base, however the Xenos has
// periodic 11-bit EDRAM tile addressing, so this field was split in Xenia
// for convenience and to avoid mistakes.
uint32_t color_base : 11; // +0 in tiles.
uint32_t color_base_bit_11 : 1; // +11
uint32_t : 4; // +12
xenos::ColorRenderTargetFormat color_format : 4; // +16
int32_t color_exp_bias : 6; // +20
@ -775,7 +779,11 @@ static_assert_size(RB_STENCILREFMASK, sizeof(uint32_t));
union alignas(uint32_t) RB_DEPTH_INFO {
uint32_t value;
struct {
uint32_t depth_base : 12; // +0 in tiles.
// The original R400 structure has 12-bit depth_base, however the Xenos has
// periodic 11-bit EDRAM tile addressing, so this field was split in Xenia
// for convenience and to avoid mistakes.
uint32_t depth_base : 11; // +0 in tiles.
uint32_t depth_base_bit_11 : 1; // +11
uint32_t : 4; // +12
xenos::DepthRenderTargetFormat depth_format : 1; // +16
};

View File

@ -211,8 +211,15 @@ uint32_t RenderTargetCache::Transfer::GetRangeRectangles(
uint32_t start_tiles, uint32_t end_tiles, uint32_t base_tiles,
uint32_t pitch_tiles, xenos::MsaaSamples msaa_samples, bool is_64bpp,
Rectangle* rectangles_out, const Rectangle* cutout) {
// EDRAM addressing wrapping must be handled by doing GetRangeRectangles for
// two clamped ranges, in this case start_tiles == end_tiles will also
// unambiguously mean an empty range rather than the entire EDRAM.
assert_true(start_tiles < xenos::kEdramTileCount);
assert_true(end_tiles <= xenos::kEdramTileCount);
assert_true(start_tiles <= end_tiles);
assert_true(base_tiles <= start_tiles);
// If start_tiles < base_tiles, this is the tail after EDRAM addressing
// wrapping.
assert_true(start_tiles >= base_tiles || end_tiles <= base_tiles);
assert_not_zero(pitch_tiles);
if (start_tiles == end_tiles) {
return 0;
@ -225,8 +232,11 @@ uint32_t RenderTargetCache::Transfer::GetRangeRectangles(
// If the first and / or the last rows have the same X spans as the middle
// part, merge them with it.
uint32_t rectangle_count = 0;
uint32_t local_start = start_tiles - base_tiles;
uint32_t local_end = end_tiles - base_tiles;
// If start_tiles < base_tiles, this is the tail after EDRAM addressing
// wrapping.
uint32_t local_offset = start_tiles < base_tiles ? xenos::kEdramTileCount : 0;
uint32_t local_start = local_offset + start_tiles - base_tiles;
uint32_t local_end = local_offset + end_tiles - base_tiles;
// Inclusive.
uint32_t rows_start = local_start / pitch_tiles;
// Exclusive.
@ -503,10 +513,7 @@ bool RenderTargetCache::Update(bool is_rasterization_done,
normalized_depth_control.stencil_enable) {
depth_and_color_rts_used_bits |= 1;
auto rb_depth_info = regs.Get<reg::RB_DEPTH_INFO>();
// std::min for safety, to avoid negative numbers in case it's completely
// wrong.
edram_bases[0] =
std::min(uint32_t(rb_depth_info.depth_base), xenos::kEdramTileCount);
edram_bases[0] = rb_depth_info.depth_base;
// With pixel shader interlock, always the same addressing disregarding
// the format.
resource_formats[0] =
@ -520,8 +527,7 @@ bool RenderTargetCache::Update(bool is_rasterization_done,
reg::RB_COLOR_INFO::rt_register_indices[i]);
uint32_t rt_bit_index = 1 + i;
depth_and_color_rts_used_bits |= uint32_t(1) << rt_bit_index;
edram_bases[rt_bit_index] =
std::min(uint32_t(color_info.color_base), xenos::kEdramTileCount);
edram_bases[rt_bit_index] = color_info.color_base;
xenos::ColorRenderTargetFormat color_format =
regs.Get<reg::RB_COLOR_INFO>(
reg::RB_COLOR_INFO::rt_register_indices[i])
@ -662,7 +668,8 @@ bool RenderTargetCache::Update(bool is_rasterization_done,
// tiles, and a 64bpp color buffer at 675 requiring 1350 tiles, but the
// smallest distance between two render target bases is 675 tiles).
uint32_t rt_max_distance_tiles_at_64bpp = xenos::kEdramTileCount * 2;
if (cvars::mrt_edram_used_range_clamp_to_min) {
if (cvars::mrt_edram_used_range_clamp_to_min &&
edram_bases_sorted_count >= 2) {
for (uint32_t i = 1; i < edram_bases_sorted_count; ++i) {
const std::pair<uint32_t, uint32_t>& rt_base_prev =
edram_bases_sorted[i - 1];
@ -671,6 +678,15 @@ bool RenderTargetCache::Update(bool is_rasterization_done,
(edram_bases_sorted[i].first - rt_base_prev.first)
<< (((rts_are_64bpp >> rt_base_prev.second) & 1) ^ 1));
}
// Clamp to the distance from the last render target to the first with
// EDRAM addressing wrapping.
const std::pair<uint32_t, uint32_t>& rt_base_last =
edram_bases_sorted[edram_bases_sorted_count - 1];
rt_max_distance_tiles_at_64bpp =
std::min(rt_max_distance_tiles_at_64bpp,
(xenos::kEdramTileCount + edram_bases_sorted[0].first -
rt_base_last.first)
<< (((rts_are_64bpp >> rt_base_last.second) & 1) ^ 1));
}
// Make sure all the needed render targets are created, and gather lengths of
@ -700,11 +716,15 @@ bool RenderTargetCache::Update(bool is_rasterization_done,
rts[rt_bit_index] = render_target;
}
uint32_t rt_is_64bpp = (rts_are_64bpp >> rt_bit_index) & 1;
// The last render target can occupy the EDRAM until the base of the first
// render target (itself in case of 1 render target) with EDRAM addressing
// wrapping.
rt_lengths_tiles[i] = std::min(
std::min(length_used_tiles_at_32bpp << rt_is_64bpp,
rt_max_distance_tiles_at_64bpp >> (rt_is_64bpp ^ 1)),
((i + 1 < edram_bases_sorted_count) ? edram_bases_sorted[i + 1].first
: xenos::kEdramTileCount) -
((i + 1 < edram_bases_sorted_count)
? edram_bases_sorted[i + 1].first
: (xenos::kEdramTileCount + edram_bases_sorted[0].first)) -
rt_base);
}
@ -718,8 +738,7 @@ bool RenderTargetCache::Update(bool is_rasterization_done,
for (uint32_t i = 0; i < edram_bases_sorted_count; ++i) {
const std::pair<uint32_t, uint32_t>& rt_base_index =
edram_bases_sorted[i];
if (WouldOwnershipChangeRequireTransfers(rt_keys[rt_base_index.second],
rt_base_index.first,
if (WouldOwnershipChangeRequireTransfers(rt_keys[rt_base_index.second], 0,
rt_lengths_tiles[i])) {
interlock_barrier_needed = true;
break;
@ -738,10 +757,10 @@ bool RenderTargetCache::Update(bool is_rasterization_done,
for (uint32_t i = 0; i < edram_bases_sorted_count; ++i) {
const std::pair<uint32_t, uint32_t>& rt_base_index = edram_bases_sorted[i];
uint32_t rt_bit_index = rt_base_index.second;
ChangeOwnership(
rt_keys[rt_bit_index], rt_base_index.first, rt_lengths_tiles[i],
interlock_barrier_only ? nullptr
: &last_update_transfers_[rt_bit_index]);
ChangeOwnership(rt_keys[rt_bit_index], 0, rt_lengths_tiles[i],
interlock_barrier_only
? nullptr
: &last_update_transfers_[rt_bit_index]);
}
if (interlock_barrier_only) {
@ -870,7 +889,8 @@ uint32_t RenderTargetCache::GetRenderTargetHeight(
if (!pitch_tiles_at_32bpp) {
return 0;
}
// Down to the end of EDRAM.
// Down to the beginning of the render target in the next 11-bit EDRAM
// addressing period.
uint32_t tile_rows = (xenos::kEdramTileCount + (pitch_tiles_at_32bpp - 1)) /
pitch_tiles_at_32bpp;
// Clamp to the guest limit (tile padding should exceed it) and to the host
@ -930,65 +950,80 @@ void RenderTargetCache::GetResolveCopyRectanglesToDump(
if (!row_length || !rows) {
return;
}
uint32_t resolve_area_end = base + (rows - 1) * pitch + row_length;
// Collect render targets owning ranges within the specified rectangle. The
// first render target in the range may be before the lower_bound, only being
// in the range with its tail.
auto it = ownership_ranges_.lower_bound(base);
if (it != ownership_ranges_.cbegin()) {
auto it_pre = std::prev(it);
if (it_pre->second.end_tiles > base) {
it = it_pre;
auto get_rectangles_in_extent = [&](uint32_t extent_start,
uint32_t extent_end,
uint32_t range_local_offset) {
// Collect render targets owning ranges within the specified rectangle. The
// first render target in the range may be before the lower_bound, only
// being in the range with its tail.
auto it = ownership_ranges_.lower_bound(extent_start);
if (it != ownership_ranges_.cbegin()) {
auto it_pre = std::prev(it);
if (it_pre->second.end_tiles > extent_start) {
it = it_pre;
}
}
}
for (; it != ownership_ranges_.cend(); ++it) {
uint32_t range_global_start = std::max(it->first, base);
if (range_global_start >= resolve_area_end) {
break;
}
RenderTargetKey rt_key = it->second.render_target;
if (rt_key.IsEmpty()) {
continue;
}
// Merge with other render target ranges with the same current ownership,
// but different depth ownership, since it's not relevant to resolving.
while (it != ownership_ranges_.cend()) {
auto it_next = std::next(it);
if (it_next == ownership_ranges_.cend() ||
it_next->first >= resolve_area_end ||
it_next->second.render_target != rt_key) {
for (; it != ownership_ranges_.cend(); ++it) {
uint32_t range_global_start = std::max(it->first, extent_start);
if (range_global_start >= extent_end) {
break;
}
it = it_next;
}
uint32_t range_local_start = std::max(range_global_start, base) - base;
uint32_t range_local_end =
std::min(it->second.end_tiles, resolve_area_end) - base;
assert_true(range_local_start < range_local_end);
uint32_t rows_start = range_local_start / pitch;
uint32_t rows_end = (range_local_end + (pitch - 1)) / pitch;
uint32_t row_first_start = range_local_start - rows_start * pitch;
if (row_first_start >= row_length) {
// The first row starts within the pitch padding.
if (rows_start + 1 < rows_end) {
// Multiple rows - start at the second.
++rows_start;
row_first_start = 0;
} else {
// Single row - nothing to dump.
RenderTargetKey rt_key = it->second.render_target;
if (rt_key.IsEmpty()) {
continue;
}
}
// Merge with other render target ranges with the same current ownership,
// but different depth ownership, since it's not relevant to resolving.
while (it != ownership_ranges_.cend()) {
auto it_next = std::next(it);
if (it_next == ownership_ranges_.cend() ||
it_next->first >= extent_end ||
it_next->second.render_target != rt_key) {
break;
}
it = it_next;
}
auto it_rt = render_targets_.find(rt_key);
assert_true(it_rt != render_targets_.cend());
assert_not_null(it_rt->second);
// Don't include pitch padding in the last row.
rectangles_out.emplace_back(
it_rt->second, rows_start, rows_end - rows_start, row_first_start,
std::min(pitch - (rows_end * pitch - range_local_end), row_length));
uint32_t range_local_start = range_local_offset +
std::max(range_global_start, extent_start) -
base;
uint32_t range_local_end = range_local_offset +
std::min(it->second.end_tiles, extent_end) -
base;
assert_true(range_local_start < range_local_end);
uint32_t rows_start = range_local_start / pitch;
uint32_t rows_end = (range_local_end + (pitch - 1)) / pitch;
uint32_t row_first_start = range_local_start - rows_start * pitch;
if (row_first_start >= row_length) {
// The first row starts within the pitch padding.
if (rows_start + 1 < rows_end) {
// Multiple rows - start at the second.
++rows_start;
row_first_start = 0;
} else {
// Single row - nothing to dump.
continue;
}
}
auto it_rt = render_targets_.find(rt_key);
assert_true(it_rt != render_targets_.cend());
assert_not_null(it_rt->second);
// Don't include pitch padding in the last row.
rectangles_out.emplace_back(
it_rt->second, rows_start, rows_end - rows_start, row_first_start,
std::min(pitch - (rows_end * pitch - range_local_end), row_length));
}
};
uint32_t resolve_area_end = base + (rows - 1) * pitch + row_length;
get_rectangles_in_extent(
base, std::min(resolve_area_end, xenos::kEdramTileCount), 0);
if (resolve_area_end > xenos::kEdramTileCount) {
// The resolve area goes to the next EDRAM addressing period.
get_rectangles_in_extent(
0, std::min(resolve_area_end & (xenos::kEdramTileCount - 1), base),
xenos::kEdramTileCount);
}
}
@ -1102,39 +1137,59 @@ bool RenderTargetCache::PrepareHostRenderTargetsResolveClear(
<< msaa_samples_x_log2) /
xenos::kEdramTileWidthSamples +
1 - clear_start_tiles_at_32bpp;
uint32_t depth_clear_start_tiles =
resolve_info.IsClearingDepth()
? std::min(
resolve_info.depth_original_base + clear_start_tiles_at_32bpp,
xenos::kEdramTileCount)
: xenos::kEdramTileCount;
uint32_t color_clear_start_tiles =
resolve_info.IsClearingColor()
? std::min(resolve_info.color_original_base +
(clear_start_tiles_at_32bpp
<< resolve_info.color_edram_info.format_is_64bpp),
xenos::kEdramTileCount)
: xenos::kEdramTileCount;
uint32_t depth_clear_end_tiles =
std::min(depth_clear_start_tiles + clear_length_tiles_at_32bpp,
xenos::kEdramTileCount);
uint32_t color_clear_end_tiles =
std::min(color_clear_start_tiles +
(clear_length_tiles_at_32bpp
<< resolve_info.color_edram_info.format_is_64bpp),
xenos::kEdramTileCount);
// Prevent overlap.
if (depth_clear_start_tiles < color_clear_start_tiles) {
depth_clear_end_tiles =
std::min(depth_clear_end_tiles, color_clear_start_tiles);
} else {
color_clear_end_tiles =
std::min(color_clear_end_tiles, depth_clear_start_tiles);
// Up to the range from the base in the current 11 tile index bits to the base
// in the next 11 tile index bits after wrapping can be cleared.
uint32_t depth_clear_start_tiles_base_relative = 0;
uint32_t depth_clear_length_tiles = 0;
if (resolve_info.IsClearingDepth()) {
depth_clear_start_tiles_base_relative =
std::min(clear_start_tiles_at_32bpp, xenos::kEdramTileCount);
depth_clear_length_tiles =
std::min(clear_start_tiles_at_32bpp + clear_length_tiles_at_32bpp,
xenos::kEdramTileCount) -
depth_clear_start_tiles_base_relative;
}
uint32_t color_clear_start_tiles_base_relative = 0;
uint32_t color_clear_length_tiles = 0;
if (resolve_info.IsClearingColor()) {
color_clear_start_tiles_base_relative =
std::min(clear_start_tiles_at_32bpp
<< resolve_info.color_edram_info.format_is_64bpp,
xenos::kEdramTileCount);
color_clear_length_tiles =
std::min((clear_start_tiles_at_32bpp + clear_length_tiles_at_32bpp)
<< resolve_info.color_edram_info.format_is_64bpp,
xenos::kEdramTileCount) -
color_clear_start_tiles_base_relative;
}
if (depth_clear_length_tiles && color_clear_length_tiles) {
// Prevent overlap - clear the depth only until the color, the color only
// until the depth, in the current or the next 11 bits of the tile index.
uint32_t depth_clear_start_tiles_wrapped =
(resolve_info.depth_original_base +
depth_clear_start_tiles_base_relative) &
(xenos::kEdramTileCount - 1);
uint32_t color_clear_start_tiles_wrapped =
(resolve_info.color_original_base +
color_clear_start_tiles_base_relative) &
(xenos::kEdramTileCount - 1);
depth_clear_length_tiles = std::min(
depth_clear_length_tiles,
((color_clear_start_tiles_wrapped < depth_clear_start_tiles_wrapped)
? xenos::kEdramTileCount
: 0) +
color_clear_start_tiles_wrapped - depth_clear_start_tiles_wrapped);
color_clear_length_tiles = std::min(
color_clear_length_tiles,
((depth_clear_start_tiles_wrapped < color_clear_start_tiles_wrapped)
? xenos::kEdramTileCount
: 0) +
depth_clear_start_tiles_wrapped - color_clear_start_tiles_wrapped);
}
RenderTargetKey depth_render_target_key;
RenderTarget* depth_render_target = nullptr;
if (depth_clear_start_tiles < depth_clear_end_tiles) {
if (depth_clear_length_tiles) {
depth_render_target_key.base_tiles = resolve_info.depth_original_base;
depth_render_target_key.pitch_tiles_at_32bpp = pitch_tiles_at_32bpp;
depth_render_target_key.msaa_samples = msaa_samples;
@ -1143,13 +1198,14 @@ bool RenderTargetCache::PrepareHostRenderTargetsResolveClear(
resolve_info.depth_edram_info.format;
depth_render_target = GetOrCreateRenderTarget(depth_render_target_key);
if (!depth_render_target) {
// Failed to create the depth render target, don't clear it.
depth_render_target_key = RenderTargetKey();
depth_clear_start_tiles = depth_clear_end_tiles;
depth_clear_length_tiles = 0;
}
}
RenderTargetKey color_render_target_key;
RenderTarget* color_render_target = nullptr;
if (color_clear_start_tiles < color_clear_end_tiles) {
if (color_clear_length_tiles) {
color_render_target_key.base_tiles = resolve_info.color_original_base;
color_render_target_key.pitch_tiles_at_32bpp = pitch_tiles_at_32bpp;
color_render_target_key.msaa_samples = msaa_samples;
@ -1158,14 +1214,13 @@ bool RenderTargetCache::PrepareHostRenderTargetsResolveClear(
xenos::ColorRenderTargetFormat(resolve_info.color_edram_info.format)));
color_render_target = GetOrCreateRenderTarget(color_render_target_key);
if (!color_render_target) {
// Failed to create the color render target, don't clear it.
color_render_target_key = RenderTargetKey();
color_clear_start_tiles = color_clear_end_tiles;
color_clear_length_tiles = 0;
}
}
if (depth_clear_start_tiles >= depth_clear_end_tiles &&
color_clear_start_tiles >= color_clear_end_tiles) {
// The region turned out to be outside the EDRAM, or there's complete
// overlap, shouldn't be happening. Or failed to create both render targets.
if (!depth_clear_length_tiles && !color_clear_length_tiles) {
// Complete overlap, or failed to create all the render targets.
return false;
}
@ -1173,16 +1228,16 @@ bool RenderTargetCache::PrepareHostRenderTargetsResolveClear(
depth_render_target_out = depth_render_target;
depth_transfers_out.clear();
if (depth_render_target) {
ChangeOwnership(depth_render_target_key, depth_clear_start_tiles,
depth_clear_end_tiles - depth_clear_start_tiles,
&depth_transfers_out, &clear_rectangle);
ChangeOwnership(
depth_render_target_key, depth_clear_start_tiles_base_relative,
depth_clear_length_tiles, &depth_transfers_out, &clear_rectangle);
}
color_render_target_out = color_render_target;
color_transfers_out.clear();
if (color_render_target) {
ChangeOwnership(color_render_target_key, color_clear_start_tiles,
color_clear_end_tiles - color_clear_start_tiles,
&color_transfers_out, &clear_rectangle);
ChangeOwnership(
color_render_target_key, color_clear_start_tiles_base_relative,
color_clear_length_tiles, &color_transfers_out, &clear_rectangle);
}
return true;
}
@ -1285,42 +1340,66 @@ RenderTargetCache::RenderTarget* RenderTargetCache::GetOrCreateRenderTarget(
}
bool RenderTargetCache::WouldOwnershipChangeRequireTransfers(
RenderTargetKey dest, uint32_t start_tiles, uint32_t length_tiles) const {
assert_true(start_tiles >= dest.base_tiles);
assert_true(length_tiles <= (xenos::kEdramTileCount - start_tiles));
RenderTargetKey dest, uint32_t start_tiles_base_relative,
uint32_t length_tiles) const {
// xenos::kEdramTileCount with length 0 is fine if both the start and the end
// are clamped to xenos::kEdramTileCount.
assert_true(start_tiles_base_relative <=
(xenos::kEdramTileCount - uint32_t(length_tiles != 0)));
assert_true(length_tiles <= xenos::kEdramTileCount);
if (length_tiles == 0) {
return false;
}
bool host_depth_encoding_different =
dest.is_depth && GetPath() == Path::kHostRenderTargets &&
IsHostDepthEncodingDifferent(dest.GetDepthFormat());
// The map contains consecutive ranges, merged if the adjacent ones are the
// same. Find the range starting at >= the start. A portion of the range
// preceding it may be intersecting the render target's range (or even fully
// contain it).
auto would_require_transfers_in_extent = [&](uint32_t extent_start,
uint32_t extent_end) -> bool {
// The map contains consecutive ranges, merged if the adjacent ones are the
// same. Find the range starting at >= the start. A portion of the range
// preceding it may be intersecting the render target's range (or even fully
// contain it).
auto it = ownership_ranges_.lower_bound(extent_start);
if (it != ownership_ranges_.begin()) {
auto it_pre = std::prev(it);
if (it_pre->second.end_tiles > extent_start) {
it = it_pre;
}
}
for (; it != ownership_ranges_.end(); ++it) {
if (it->first >= extent_end) {
// Outside the touched extent already.
break;
}
if (it->second.IsOwnedBy(dest, host_depth_encoding_different)) {
// Already owned by the needed render target - no need to transfer
// anything.
continue;
}
RenderTargetKey transfer_source = it->second.render_target;
// Only perform the transfer when actually changing the latest owner, not
// just the latest host depth owner - the transfer source is expected to
// be different than the destination.
if (!transfer_source.IsEmpty() && transfer_source != dest) {
return true;
}
}
return false;
};
// start_tiles_base_relative may already be in the next 11 bits - wrap the
// start tile index to use the same code as if that was not the case.
uint32_t start_tiles = (dest.base_tiles + start_tiles_base_relative) &
(xenos::kEdramTileCount - 1);
uint32_t end_tiles = start_tiles + length_tiles;
auto it = ownership_ranges_.lower_bound(start_tiles);
if (it != ownership_ranges_.begin()) {
auto it_pre = std::prev(it);
if (it_pre->second.end_tiles > start_tiles) {
it = it_pre;
}
if (would_require_transfers_in_extent(
start_tiles, std::min(end_tiles, xenos::kEdramTileCount))) {
return true;
}
for (; it != ownership_ranges_.end(); ++it) {
if (it->first >= end_tiles) {
// Outside the touched range already.
break;
}
if (it->second.IsOwnedBy(dest, host_depth_encoding_different)) {
// Already owned by the needed render target - no need to transfer
// anything.
continue;
}
RenderTargetKey transfer_source = it->second.render_target;
// Only perform the transfer when actually changing the latest owner, not
// just the latest host depth owner - the transfer source is expected to
// be different than the destination.
if (!transfer_source.IsEmpty() && transfer_source != dest) {
if (end_tiles > xenos::kEdramTileCount) {
// The check extent goes to the next EDRAM addressing period.
if (would_require_transfers_in_extent(
0,
std::min(end_tiles & (xenos::kEdramTileCount - 1), start_tiles))) {
return true;
}
}
@ -1328,143 +1407,161 @@ bool RenderTargetCache::WouldOwnershipChangeRequireTransfers(
}
void RenderTargetCache::ChangeOwnership(
RenderTargetKey dest, uint32_t start_tiles, uint32_t length_tiles,
std::vector<Transfer>* transfers_append_out,
RenderTargetKey dest, uint32_t start_tiles_base_relative,
uint32_t length_tiles, std::vector<Transfer>* transfers_append_out,
const Transfer::Rectangle* resolve_clear_cutout) {
assert_true(start_tiles >= dest.base_tiles);
assert_true(length_tiles <= (xenos::kEdramTileCount - start_tiles));
// xenos::kEdramTileCount with length 0 is fine if both the start and the end
// are clamped to xenos::kEdramTileCount.
assert_true(start_tiles_base_relative <=
(xenos::kEdramTileCount - uint32_t(length_tiles != 0)));
assert_true(length_tiles <= xenos::kEdramTileCount);
if (length_tiles == 0) {
return;
}
uint32_t dest_pitch_tiles = dest.GetPitchTiles();
bool dest_is_64bpp = dest.Is64bpp();
bool host_depth_encoding_different =
dest.is_depth && GetPath() == Path::kHostRenderTargets &&
IsHostDepthEncodingDifferent(dest.GetDepthFormat());
// The map contains consecutive ranges, merged if the adjacent ones are the
// same. Find the range starting at >= the start. A portion of the range
// preceding it may be intersecting the render target's range (or even fully
// contain it) - split it into the untouched head and the claimed tail if
// needed.
uint32_t end_tiles = start_tiles + length_tiles;
auto it = ownership_ranges_.lower_bound(start_tiles);
if (it != ownership_ranges_.begin()) {
auto it_pre = std::prev(it);
if (it_pre->second.end_tiles > start_tiles &&
!it_pre->second.IsOwnedBy(dest, host_depth_encoding_different)) {
// Different render target overlapping the range - split the head.
ownership_ranges_.emplace(start_tiles, it_pre->second);
it_pre->second.end_tiles = start_tiles;
// Let the next loop do the transfer and needed merging and splitting
// starting from the added tail.
it = std::next(it_pre);
auto change_ownership_in_extent = [&](uint32_t extent_start,
uint32_t extent_end) {
// The map contains consecutive ranges, merged if the adjacent ones are the
// same. Find the range starting at >= the start. A portion of the range
// preceding it may be intersecting the render target's range (or even fully
// contain it) - split it into the untouched head and the claimed tail if
// needed.
auto it = ownership_ranges_.lower_bound(extent_start);
if (it != ownership_ranges_.begin()) {
auto it_pre = std::prev(it);
if (it_pre->second.end_tiles > extent_start &&
!it_pre->second.IsOwnedBy(dest, host_depth_encoding_different)) {
// Different render target overlapping the range - split the head.
ownership_ranges_.emplace(extent_start, it_pre->second);
it_pre->second.end_tiles = extent_start;
// Let the next loop do the transfer and needed merging and splitting
// starting from the added tail.
it = std::next(it_pre);
}
}
}
while (it != ownership_ranges_.end()) {
if (it->first >= end_tiles) {
// Outside the touched range already.
break;
}
if (it->second.IsOwnedBy(dest, host_depth_encoding_different)) {
// Already owned by the needed render target - no need to transfer
// anything.
++it;
continue;
}
// Take over the current range. Handle the tail - may be outside the range
// (split in this case) or within it.
if (it->second.end_tiles > end_tiles) {
// Split the tail.
ownership_ranges_.emplace(end_tiles, it->second);
it->second.end_tiles = end_tiles;
}
if (transfers_append_out) {
RenderTargetKey transfer_source = it->second.render_target;
// Only perform the copying when actually changing the latest owner, not
// just the latest host depth owner - the transfer source is expected to
// be different than the destination.
if (!transfer_source.IsEmpty() && transfer_source != dest) {
uint32_t transfer_end_tiles = std::min(it->second.end_tiles, end_tiles);
if (!resolve_clear_cutout ||
Transfer::GetRangeRectangles(it->first, transfer_end_tiles,
dest.base_tiles, dest_pitch_tiles,
dest.msaa_samples, dest_is_64bpp,
nullptr, resolve_clear_cutout)) {
RenderTargetKey transfer_host_depth_source =
host_depth_encoding_different
? it->second.GetHostDepthRenderTarget(dest.GetDepthFormat())
: RenderTargetKey();
if (transfer_host_depth_source == transfer_source) {
// Same render target, don't provide a separate host depth source.
transfer_host_depth_source = RenderTargetKey();
}
if (!transfers_append_out->empty() &&
transfers_append_out->back().end_tiles == it->first &&
transfers_append_out->back().source->key() == transfer_source &&
((transfers_append_out->back().host_depth_source == nullptr) ==
transfer_host_depth_source.IsEmpty()) &&
(transfer_host_depth_source.IsEmpty() ||
transfers_append_out->back().host_depth_source->key() ==
transfer_host_depth_source)) {
// Extend the last transfer if, for example, transferring color, but
// host depth is different.
transfers_append_out->back().end_tiles = transfer_end_tiles;
} else {
auto transfer_source_rt_it = render_targets_.find(transfer_source);
if (transfer_source_rt_it != render_targets_.end()) {
assert_not_null(transfer_source_rt_it->second);
auto transfer_host_depth_source_rt_it =
!transfer_host_depth_source.IsEmpty()
? render_targets_.find(transfer_host_depth_source)
: render_targets_.end();
if (transfer_host_depth_source.IsEmpty() ||
transfer_host_depth_source_rt_it != render_targets_.end()) {
assert_false(transfer_host_depth_source_rt_it !=
render_targets_.end() &&
!transfer_host_depth_source_rt_it->second);
transfers_append_out->emplace_back(
it->first, transfer_end_tiles,
transfer_source_rt_it->second,
transfer_host_depth_source_rt_it != render_targets_.end()
? transfer_host_depth_source_rt_it->second
: nullptr);
while (it != ownership_ranges_.end()) {
if (it->first >= extent_end) {
// Outside the touched extent already.
break;
}
if (it->second.IsOwnedBy(dest, host_depth_encoding_different)) {
// Already owned by the needed render target - no need to transfer
// anything.
++it;
continue;
}
// Take over the current range. Handle the tail - may be outside the range
// (split in this case) or within it.
if (it->second.end_tiles > extent_end) {
// Split the tail.
ownership_ranges_.emplace(extent_end, it->second);
it->second.end_tiles = extent_end;
}
if (transfers_append_out) {
RenderTargetKey transfer_source = it->second.render_target;
// Only perform the copying when actually changing the latest owner, not
// just the latest host depth owner - the transfer source is expected to
// be different than the destination.
if (!transfer_source.IsEmpty() && transfer_source != dest) {
uint32_t transfer_end_tiles =
std::min(it->second.end_tiles, extent_end);
if (!resolve_clear_cutout ||
Transfer::GetRangeRectangles(it->first, transfer_end_tiles,
dest.base_tiles, dest_pitch_tiles,
dest.msaa_samples, dest_is_64bpp,
nullptr, resolve_clear_cutout)) {
RenderTargetKey transfer_host_depth_source =
host_depth_encoding_different
? it->second.GetHostDepthRenderTarget(dest.GetDepthFormat())
: RenderTargetKey();
if (transfer_host_depth_source == transfer_source) {
// Same render target, don't provide a separate host depth source.
transfer_host_depth_source = RenderTargetKey();
}
if (!transfers_append_out->empty() &&
transfers_append_out->back().end_tiles == it->first &&
transfers_append_out->back().source->key() == transfer_source &&
((transfers_append_out->back().host_depth_source == nullptr) ==
transfer_host_depth_source.IsEmpty()) &&
(transfer_host_depth_source.IsEmpty() ||
transfers_append_out->back().host_depth_source->key() ==
transfer_host_depth_source)) {
// Extend the last transfer if, for example, transferring color,
// but host depth is different.
transfers_append_out->back().end_tiles = transfer_end_tiles;
} else {
auto transfer_source_rt_it =
render_targets_.find(transfer_source);
if (transfer_source_rt_it != render_targets_.end()) {
assert_not_null(transfer_source_rt_it->second);
auto transfer_host_depth_source_rt_it =
!transfer_host_depth_source.IsEmpty()
? render_targets_.find(transfer_host_depth_source)
: render_targets_.end();
if (transfer_host_depth_source.IsEmpty() ||
transfer_host_depth_source_rt_it != render_targets_.end()) {
assert_false(transfer_host_depth_source_rt_it !=
render_targets_.end() &&
!transfer_host_depth_source_rt_it->second);
transfers_append_out->emplace_back(
it->first, transfer_end_tiles,
transfer_source_rt_it->second,
transfer_host_depth_source_rt_it != render_targets_.end()
? transfer_host_depth_source_rt_it->second
: nullptr);
}
}
}
}
}
}
}
// Claim the current range.
it->second.render_target = dest;
if (host_depth_encoding_different) {
it->second.GetHostDepthRenderTarget(dest.GetDepthFormat()) = dest;
}
// Check if can merge with the next range after claiming.
std::map<uint32_t, OwnershipRange>::iterator it_next;
if (it != ownership_ranges_.end()) {
it_next = std::next(it);
if (it_next != ownership_ranges_.end() &&
it_next->second.AreOwnersSame(it->second)) {
// Merge with the next range.
it->second.end_tiles = it_next->second.end_tiles;
auto it_after = std::next(it_next);
ownership_ranges_.erase(it_next);
it_next = it_after;
// Claim the current range.
it->second.render_target = dest;
if (host_depth_encoding_different) {
it->second.GetHostDepthRenderTarget(dest.GetDepthFormat()) = dest;
}
} else {
it_next = ownership_ranges_.end();
}
// Check if can merge with the previous range after claiming and merging
// with the next (thus obtaining the correct end pointer).
if (it != ownership_ranges_.begin()) {
auto it_prev = std::prev(it);
if (it_prev->second.AreOwnersSame(it->second)) {
it_prev->second.end_tiles = it->second.end_tiles;
ownership_ranges_.erase(it);
// Check if can merge with the next range after claiming.
std::map<uint32_t, OwnershipRange>::iterator it_next;
if (it != ownership_ranges_.end()) {
it_next = std::next(it);
if (it_next != ownership_ranges_.end() &&
it_next->second.AreOwnersSame(it->second)) {
// Merge with the next range.
it->second.end_tiles = it_next->second.end_tiles;
auto it_after = std::next(it_next);
ownership_ranges_.erase(it_next);
it_next = it_after;
}
} else {
it_next = ownership_ranges_.end();
}
// Check if can merge with the previous range after claiming and merging
// with the next (thus obtaining the correct end pointer).
if (it != ownership_ranges_.begin()) {
auto it_prev = std::prev(it);
if (it_prev->second.AreOwnersSame(it->second)) {
it_prev->second.end_tiles = it->second.end_tiles;
ownership_ranges_.erase(it);
}
}
it = it_next;
}
it = it_next;
};
// start_tiles_base_relative may already be in the next 11 bits - wrap the
// start tile index to use the same code as if that was not the case.
uint32_t start_tiles = (dest.base_tiles + start_tiles_base_relative) &
(xenos::kEdramTileCount - 1);
uint32_t end_tiles = start_tiles + length_tiles;
change_ownership_in_extent(start_tiles,
std::min(end_tiles, xenos::kEdramTileCount));
if (end_tiles > xenos::kEdramTileCount) {
// The ownership change extent goes to the next EDRAM addressing period.
change_ownership_in_extent(
0, std::min(end_tiles & (xenos::kEdramTileCount - 1), start_tiles));
}
}

View File

@ -220,8 +220,7 @@ class RenderTargetCache {
union RenderTargetKey {
uint32_t key;
struct {
// [0, 2047].
uint32_t base_tiles : xenos::kEdramBaseTilesBits - 1; // 11
uint32_t base_tiles : xenos::kEdramBaseTilesBits; // 11
// At 4x MSAA (2 horizontal samples), max. align(8192 * 2, 80) / 80 = 205.
// For pitch at 64bpp, multiply by 2 (or use GetPitchTiles).
uint32_t pitch_tiles_at_32bpp : 8; // 19
@ -416,6 +415,8 @@ class RenderTargetCache {
row_first_start(row_first_start),
row_last_end(row_last_end) {}
struct Dispatch {
// Base plus offset may exceed the EDRAM tile count in case of EDRAM
// addressing wrapping.
uint32_t offset;
uint32_t width_tiles;
uint32_t height_tiles;
@ -667,13 +668,13 @@ class RenderTargetCache {
// barrier and addressed by different target-independent rasterization pixel
// positions.
bool WouldOwnershipChangeRequireTransfers(RenderTargetKey dest,
uint32_t start_tiles,
uint32_t start_tiles_base_relative,
uint32_t length_tiles) const;
// Updates ownership_ranges_, adds the transfers needed for the ownership
// change to transfers_append_out if it's not null.
void ChangeOwnership(
RenderTargetKey dest, uint32_t start_tiles, uint32_t length_tiles,
std::vector<Transfer>* transfers_append_out,
RenderTargetKey dest, uint32_t start_tiles_base_relative,
uint32_t length_tiles, std::vector<Transfer>* transfers_append_out,
const Transfer::Rectangle* resolve_clear_cutout = nullptr);
// If failed to create, may contain nullptr to prevent attempting to create a

View File

@ -52,7 +52,7 @@ uge r0.z, vThreadID.x, r0.z
if_nz r0.z
ret
endif
ubfe r0.z, l(12), l(13), CB0[0][0].z
ubfe r0.z, l(11), l(13), CB0[0][0].z
ishl r2.x, vThreadID.x, l(3)
movc r1.zw, r1.zzzw, l(0,0,4,4), l(0,0,3,3)
mov r1.x, CB0[0][0].w
@ -70,25 +70,26 @@ if_nz r0.y
endif
imad r0.y, r0.w, l(80), r0.z
imad r0.x, r0.x, l(1280), r0.y
udiv null, r0.x, r0.x, l(0x00280000)
ushr r0.x, r0.x, l(2)
store_uav_typed U0[0].xyzw, r0.xxxx, CB0[0][0].xxxx
iadd r0.y, r0.x, l(1)
store_uav_typed U0[0].xyzw, r0.yyyy, CB0[0][0].xxxx
ret
// Approximately 33 instruction slots used
// Approximately 34 instruction slots used
#endif
const BYTE resolve_clear_32bpp_cs[] =
{
68, 88, 66, 67, 49, 66,
5, 242, 163, 26, 132, 154,
170, 25, 142, 155, 35, 159,
99, 248, 1, 0, 0, 0,
124, 7, 0, 0, 5, 0,
68, 88, 66, 67, 38, 122,
202, 153, 251, 58, 216, 106,
227, 253, 80, 133, 51, 242,
143, 213, 1, 0, 0, 0,
156, 7, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
68, 2, 0, 0, 84, 2,
0, 0, 100, 2, 0, 0,
224, 6, 0, 0, 82, 68,
0, 7, 0, 0, 82, 68,
69, 70, 8, 2, 0, 0,
1, 0, 0, 0, 176, 0,
0, 0, 2, 0, 0, 0,
@ -182,9 +183,9 @@ const BYTE resolve_clear_32bpp_cs[] =
0, 0, 79, 83, 71, 78,
8, 0, 0, 0, 0, 0,
0, 0, 8, 0, 0, 0,
83, 72, 69, 88, 116, 4,
83, 72, 69, 88, 148, 4,
0, 0, 81, 0, 5, 0,
29, 1, 0, 0, 106, 8,
37, 1, 0, 0, 106, 8,
0, 1, 89, 0, 0, 7,
70, 142, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
@ -251,7 +252,7 @@ const BYTE resolve_clear_32bpp_cs[] =
21, 0, 0, 1, 138, 0,
0, 11, 66, 0, 16, 0,
0, 0, 0, 0, 1, 64,
0, 0, 12, 0, 0, 0,
0, 0, 11, 0, 0, 0,
1, 64, 0, 0, 13, 0,
0, 0, 42, 128, 48, 0,
0, 0, 0, 0, 0, 0,
@ -350,48 +351,42 @@ const BYTE resolve_clear_32bpp_cs[] =
0, 0, 1, 64, 0, 0,
0, 5, 0, 0, 26, 0,
16, 0, 0, 0, 0, 0,
85, 0, 0, 7, 18, 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,
10, 0, 16, 0, 0, 0,
0, 0, 1, 64, 0, 0,
2, 0, 0, 0, 164, 0,
0, 10, 242, 224, 33, 0,
0, 0, 0, 0, 0, 0,
0, 0, 6, 0, 16, 0,
0, 0, 0, 0, 6, 128,
48, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 30, 0, 0, 7,
34, 0, 16, 0, 0, 0,
1, 64, 0, 0, 0, 0,
40, 0, 85, 0, 0, 7,
18, 0, 16, 0, 0, 0,
0, 0, 10, 0, 16, 0,
0, 0, 0, 0, 1, 64,
0, 0, 1, 0, 0, 0,
0, 0, 2, 0, 0, 0,
164, 0, 0, 10, 242, 224,
33, 0, 0, 0, 0, 0,
0, 0, 0, 0, 86, 5,
0, 0, 0, 0, 6, 0,
16, 0, 0, 0, 0, 0,
6, 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, 33, 0,
0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 30, 0,
0, 7, 34, 0, 16, 0,
0, 0, 0, 0, 10, 0,
16, 0, 0, 0, 0, 0,
1, 64, 0, 0, 1, 0,
0, 0, 164, 0, 0, 10,
242, 224, 33, 0, 0, 0,
0, 0, 0, 0, 0, 0,
10, 0, 0, 0, 8, 0,
86, 5, 16, 0, 0, 0,
0, 0, 6, 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,
34, 0, 0, 0, 3, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 10, 0, 0, 0,
9, 0, 0, 0, 2, 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,
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,
@ -399,5 +394,16 @@ const BYTE resolve_clear_32bpp_cs[] =
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 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,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
2, 0, 0, 0
};

View File

@ -53,7 +53,7 @@ uge r0.z, vThreadID.x, r0.z
if_nz r0.z
ret
endif
ubfe r0.z, l(12), l(13), CB0[0][0].z
ubfe r0.z, l(11), l(13), CB0[0][0].z
mov r1.x, CB0[0][0].w
bfi r1.xy, l(4, 1, 0, 0), l(3, 3, 0, 0), r1.xyxx, l(0, 0, 0, 0)
imul null, r1.xy, r2.yzyy, r1.xyxx
@ -76,25 +76,27 @@ endif
imul null, r0.y, r1.w, r1.z
imad r0.z, r0.w, r1.z, r0.z
imad r0.x, r0.x, r0.y, r0.z
ishl r0.y, r0.y, l(11)
udiv null, r0.x, r0.x, r0.y
ushr r0.x, r0.x, l(2)
store_uav_typed U0[0].xyzw, r0.xxxx, CB0[0][0].xxxx
iadd r0.y, r0.x, l(1)
store_uav_typed U0[0].xyzw, r0.yyyy, CB0[0][0].xxxx
ret
// Approximately 39 instruction slots used
// Approximately 41 instruction slots used
#endif
const BYTE resolve_clear_32bpp_scaled_cs[] =
{
68, 88, 66, 67, 96, 211,
206, 23, 118, 136, 69, 240,
222, 143, 112, 200, 240, 244,
243, 17, 1, 0, 0, 0,
24, 8, 0, 0, 5, 0,
68, 88, 66, 67, 45, 106,
14, 236, 43, 234, 238, 250,
95, 188, 122, 214, 173, 229,
247, 237, 1, 0, 0, 0,
84, 8, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
68, 2, 0, 0, 84, 2,
0, 0, 100, 2, 0, 0,
124, 7, 0, 0, 82, 68,
184, 7, 0, 0, 82, 68,
69, 70, 8, 2, 0, 0,
1, 0, 0, 0, 176, 0,
0, 0, 2, 0, 0, 0,
@ -188,9 +190,9 @@ const BYTE resolve_clear_32bpp_scaled_cs[] =
0, 0, 79, 83, 71, 78,
8, 0, 0, 0, 0, 0,
0, 0, 8, 0, 0, 0,
83, 72, 69, 88, 16, 5,
83, 72, 69, 88, 76, 5,
0, 0, 81, 0, 5, 0,
68, 1, 0, 0, 106, 8,
83, 1, 0, 0, 106, 8,
0, 1, 89, 0, 0, 7,
70, 142, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
@ -264,7 +266,7 @@ const BYTE resolve_clear_32bpp_scaled_cs[] =
0, 1, 21, 0, 0, 1,
138, 0, 0, 11, 66, 0,
16, 0, 0, 0, 0, 0,
1, 64, 0, 0, 12, 0,
1, 64, 0, 0, 11, 0,
0, 0, 1, 64, 0, 0,
13, 0, 0, 0, 42, 128,
48, 0, 0, 0, 0, 0,
@ -382,6 +384,16 @@ const BYTE resolve_clear_32bpp_scaled_cs[] =
0, 0, 26, 0, 16, 0,
0, 0, 0, 0, 42, 0,
16, 0, 0, 0, 0, 0,
41, 0, 0, 7, 34, 0,
16, 0, 0, 0, 0, 0,
26, 0, 16, 0, 0, 0,
0, 0, 1, 64, 0, 0,
11, 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, 26, 0,
16, 0, 0, 0, 0, 0,
85, 0, 0, 7, 18, 0,
16, 0, 0, 0, 0, 0,
10, 0, 16, 0, 0, 0,
@ -406,11 +418,11 @@ const BYTE resolve_clear_32bpp_scaled_cs[] =
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 62, 0,
0, 1, 83, 84, 65, 84,
148, 0, 0, 0, 39, 0,
148, 0, 0, 0, 41, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 9, 0,
17, 0, 0, 0, 10, 0,
0, 0, 2, 0, 0, 0,
2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

View File

@ -52,7 +52,7 @@ uge r0.z, vThreadID.x, r0.z
if_nz r0.z
ret
endif
ubfe r0.z, l(12), l(13), CB0[0][0].z
ubfe r0.z, l(11), l(13), CB0[0][0].z
ishl r2.x, vThreadID.x, l(3)
movc r0.yw, r0.yyyw, l(0,4,0,4), l(0,3,0,3)
mov r1.x, CB0[0][0].w
@ -66,6 +66,7 @@ imad r0.yz, -r1.xxyx, l(0, 40, 16, 0), r0.yywy
imad r0.y, r0.z, l(40), r0.y
ishl r0.y, r0.y, l(1)
imad r0.x, r0.x, l(1280), r0.y
udiv null, r0.x, r0.x, l(0x00280000)
ushr r0.x, r0.x, l(2)
store_uav_typed U0[0].xyzw, r0.xxxx, CB0[0][0].xyxy
iadd r0.yz, r0.xxxx, l(0, 1, 3, 0)
@ -74,20 +75,20 @@ iadd r0.y, r0.x, l(2)
store_uav_typed U0[0].xyzw, r0.yyyy, CB0[0][0].xyxy
store_uav_typed U0[0].xyzw, r0.zzzz, CB0[0][0].xyxy
ret
// Approximately 32 instruction slots used
// Approximately 33 instruction slots used
#endif
const BYTE resolve_clear_64bpp_cs[] =
{
68, 88, 66, 67, 184, 61,
14, 156, 252, 98, 55, 118,
97, 46, 76, 47, 171, 112,
114, 251, 1, 0, 0, 0,
152, 7, 0, 0, 5, 0,
68, 88, 66, 67, 221, 142,
107, 167, 120, 242, 181, 185,
59, 248, 177, 166, 145, 243,
207, 105, 1, 0, 0, 0,
184, 7, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
68, 2, 0, 0, 84, 2,
0, 0, 100, 2, 0, 0,
252, 6, 0, 0, 82, 68,
28, 7, 0, 0, 82, 68,
69, 70, 8, 2, 0, 0,
1, 0, 0, 0, 176, 0,
0, 0, 2, 0, 0, 0,
@ -181,9 +182,9 @@ const BYTE resolve_clear_64bpp_cs[] =
0, 0, 79, 83, 71, 78,
8, 0, 0, 0, 0, 0,
0, 0, 8, 0, 0, 0,
83, 72, 69, 88, 144, 4,
83, 72, 69, 88, 176, 4,
0, 0, 81, 0, 5, 0,
36, 1, 0, 0, 106, 8,
44, 1, 0, 0, 106, 8,
0, 1, 89, 0, 0, 7,
70, 142, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
@ -248,7 +249,7 @@ const BYTE resolve_clear_64bpp_cs[] =
21, 0, 0, 1, 138, 0,
0, 11, 66, 0, 16, 0,
0, 0, 0, 0, 1, 64,
0, 0, 12, 0, 0, 0,
0, 0, 11, 0, 0, 0,
1, 64, 0, 0, 13, 0,
0, 0, 42, 128, 48, 0,
0, 0, 0, 0, 0, 0,
@ -333,65 +334,71 @@ const BYTE resolve_clear_64bpp_cs[] =
16, 0, 0, 0, 0, 0,
1, 64, 0, 0, 0, 5,
0, 0, 26, 0, 16, 0,
0, 0, 0, 0, 85, 0,
0, 7, 18, 0, 16, 0,
0, 0, 0, 0, 10, 0,
0, 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, 0, 0, 40, 0,
85, 0, 0, 7, 18, 0,
16, 0, 0, 0, 0, 0,
1, 64, 0, 0, 2, 0,
0, 0, 164, 0, 0, 10,
242, 224, 33, 0, 0, 0,
0, 0, 0, 0, 0, 0,
6, 0, 16, 0, 0, 0,
0, 0, 70, 132, 48, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
30, 0, 0, 10, 98, 0,
16, 0, 0, 0, 0, 0,
6, 0, 16, 0, 0, 0,
0, 0, 2, 64, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 164, 0,
10, 0, 16, 0, 0, 0,
0, 0, 1, 64, 0, 0,
2, 0, 0, 0, 164, 0,
0, 10, 242, 224, 33, 0,
0, 0, 0, 0, 0, 0,
0, 0, 86, 5, 16, 0,
0, 0, 6, 0, 16, 0,
0, 0, 0, 0, 70, 132,
48, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 30, 0, 0, 7,
34, 0, 16, 0, 0, 0,
0, 0, 10, 0, 16, 0,
0, 0, 0, 0, 1, 64,
0, 0, 2, 0, 0, 0,
0, 0, 30, 0, 0, 10,
98, 0, 16, 0, 0, 0,
0, 0, 6, 0, 16, 0,
0, 0, 0, 0, 2, 64,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 3, 0,
0, 0, 0, 0, 0, 0,
164, 0, 0, 10, 242, 224,
33, 0, 0, 0, 0, 0,
0, 0, 0, 0, 86, 5,
16, 0, 0, 0, 0, 0,
70, 132, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 164, 0,
0, 10, 242, 224, 33, 0,
0, 0, 0, 0, 30, 0,
0, 7, 34, 0, 16, 0,
0, 0, 0, 0, 10, 0,
16, 0, 0, 0, 0, 0,
1, 64, 0, 0, 2, 0,
0, 0, 164, 0, 0, 10,
242, 224, 33, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 166, 10, 16, 0,
0, 0, 0, 0, 70, 132,
48, 0, 0, 0, 0, 0,
86, 5, 16, 0, 0, 0,
0, 0, 70, 132, 48, 0,
0, 0, 0, 0, 0, 0,
0, 0, 62, 0, 0, 1,
83, 84, 65, 84, 148, 0,
0, 0, 32, 0, 0, 0,
3, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 11, 0,
0, 0, 7, 0, 0, 0,
2, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
164, 0, 0, 10, 242, 224,
33, 0, 0, 0, 0, 0,
0, 0, 0, 0, 166, 10,
16, 0, 0, 0, 0, 0,
70, 132, 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, 33, 0,
0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
11, 0, 0, 0, 8, 0,
0, 0, 2, 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, 0, 0,
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, 1, 0,
0, 0, 2, 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, 0, 0,
@ -401,6 +408,6 @@ const BYTE resolve_clear_64bpp_cs[] =
0, 0, 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, 4, 0,
0, 0
};

View File

@ -53,7 +53,7 @@ uge r0.y, vThreadID.x, r0.y
if_nz r0.y
ret
endif
ubfe r0.y, l(12), l(13), CB0[0][0].z
ubfe r0.y, l(11), l(13), CB0[0][0].z
mov r1.x, CB0[0][0].w
bfi r1.xy, l(4, 1, 0, 0), l(3, 3, 0, 0), r1.xyxx, l(0, 0, 0, 0)
imul null, r1.xy, r2.yzyy, r1.xyxx
@ -71,6 +71,8 @@ imul null, r0.w, r1.z, r1.y
imad r0.y, r0.z, r1.x, r0.y
ishl r0.y, r0.y, l(1)
imad r0.x, r0.x, r0.w, r0.y
ishl r0.y, r0.w, l(11)
udiv null, r0.x, r0.x, r0.y
ushr r0.x, r0.x, l(2)
store_uav_typed U0[0].xyzw, r0.xxxx, CB0[0][0].xyxy
iadd r0.yz, r0.xxxx, l(0, 1, 3, 0)
@ -79,20 +81,20 @@ iadd r0.y, r0.x, l(2)
store_uav_typed U0[0].xyzw, r0.yyyy, CB0[0][0].xyxy
store_uav_typed U0[0].xyzw, r0.zzzz, CB0[0][0].xyxy
ret
// Approximately 37 instruction slots used
// Approximately 39 instruction slots used
#endif
const BYTE resolve_clear_64bpp_scaled_cs[] =
{
68, 88, 66, 67, 161, 181,
240, 107, 94, 61, 193, 26,
137, 198, 166, 37, 75, 215,
8, 224, 1, 0, 0, 0,
32, 8, 0, 0, 5, 0,
68, 88, 66, 67, 253, 175,
96, 159, 160, 58, 235, 9,
160, 146, 61, 232, 29, 141,
206, 165, 1, 0, 0, 0,
92, 8, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
68, 2, 0, 0, 84, 2,
0, 0, 100, 2, 0, 0,
132, 7, 0, 0, 82, 68,
192, 7, 0, 0, 82, 68,
69, 70, 8, 2, 0, 0,
1, 0, 0, 0, 176, 0,
0, 0, 2, 0, 0, 0,
@ -186,9 +188,9 @@ const BYTE resolve_clear_64bpp_scaled_cs[] =
0, 0, 79, 83, 71, 78,
8, 0, 0, 0, 0, 0,
0, 0, 8, 0, 0, 0,
83, 72, 69, 88, 24, 5,
83, 72, 69, 88, 84, 5,
0, 0, 81, 0, 5, 0,
70, 1, 0, 0, 106, 8,
85, 1, 0, 0, 106, 8,
0, 1, 89, 0, 0, 7,
70, 142, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
@ -260,7 +262,7 @@ const BYTE resolve_clear_64bpp_scaled_cs[] =
0, 1, 21, 0, 0, 1,
138, 0, 0, 11, 34, 0,
16, 0, 0, 0, 0, 0,
1, 64, 0, 0, 12, 0,
1, 64, 0, 0, 11, 0,
0, 0, 1, 64, 0, 0,
13, 0, 0, 0, 42, 128,
48, 0, 0, 0, 0, 0,
@ -360,6 +362,16 @@ const BYTE resolve_clear_64bpp_scaled_cs[] =
0, 0, 10, 0, 16, 0,
0, 0, 0, 0, 58, 0,
16, 0, 0, 0, 0, 0,
26, 0, 16, 0, 0, 0,
0, 0, 41, 0, 0, 7,
34, 0, 16, 0, 0, 0,
0, 0, 58, 0, 16, 0,
0, 0, 0, 0, 1, 64,
0, 0, 11, 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,
26, 0, 16, 0, 0, 0,
0, 0, 85, 0, 0, 7,
18, 0, 16, 0, 0, 0,
@ -406,11 +418,11 @@ const BYTE resolve_clear_64bpp_scaled_cs[] =
0, 0, 0, 0, 0, 0,
62, 0, 0, 1, 83, 84,
65, 84, 148, 0, 0, 0,
37, 0, 0, 0, 4, 0,
39, 0, 0, 0, 4, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 16, 0, 0, 0,
8, 0, 0, 0, 2, 0,
0, 0, 17, 0, 0, 0,
9, 0, 0, 0, 2, 0,
0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 9
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].xxxz, l(1023, 4096, 0x40000000, 7)
and r0.xyzw, CB0[0][0].xxxz, l(1023, 4096, 0x20000000, 7)
if_nz r0.z
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -64,7 +64,7 @@ mov r4.y, r3.x
bfi r2.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r4.xxxy, l(0, 0, 0, 0)
bfi r0.z, l(10), l(5), CB0[0][0].w, l(0)
bfi r3.xz, l(4, 0, 4, 0), l(3, 0, 3, 0), r3.zzwz, l(0, 0, 0, 0)
ubfe r4.xyz, l(2, 3, 12, 0), l(10, 28, 13, 0), CB0[0][0].xwxx
ubfe r4.xyz, l(2, 3, 11, 0), l(10, 28, 13, 0), CB0[0][0].xwxx
ishl r5.x, vThreadID.x, l(3)
umax r5.y, r1.y, vThreadID.y
imad r2.zw, r2.zzzw, r2.xxxy, r5.xxxy
@ -98,6 +98,8 @@ endif
imul null, r0.y, r4.y, r4.x
imad r1.y, r2.w, r4.x, r2.z
imad r0.x, r0.x, r0.y, r1.y
ishl r0.y, r0.y, l(11)
udiv null, r0.x, r0.x, r0.y
ushr r0.x, r0.x, l(2)
ld r4.xyzw, r0.xxxx, T0[0].zxyw
iadd r0.x, r0.x, l(1)
@ -117,7 +119,7 @@ if_nz r0.x
mov r4.xyz, r4.xzzx
endif
if_nz r1.w
ubfe r0.x, l(4), l(25), CB0[0][0].x
ubfe r0.x, l(4), l(24), CB0[0][0].x
switch r0.x
case l(0)
case l(1)
@ -261,20 +263,20 @@ if_nz r0.z
endif
store_uav_typed U0[0].xyzw, r0.xxxx, r6.xyzw
ret
// Approximately 216 instruction slots used
// Approximately 218 instruction slots used
#endif
const BYTE resolve_fast_32bpp_1x2xmsaa_scaled_cs[] =
{
68, 88, 66, 67, 240, 247,
22, 2, 165, 249, 134, 60,
228, 125, 147, 136, 177, 66,
63, 252, 1, 0, 0, 0,
212, 29, 0, 0, 5, 0,
68, 88, 66, 67, 140, 139,
208, 26, 49, 227, 94, 97,
132, 210, 183, 43, 19, 110,
110, 29, 1, 0, 0, 0,
16, 30, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
56, 29, 0, 0, 82, 68,
116, 29, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -382,8 +384,8 @@ const BYTE resolve_fast_32bpp_1x2xmsaa_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
124, 26, 0, 0, 81, 0,
5, 0, 159, 6, 0, 0,
184, 26, 0, 0, 81, 0,
5, 0, 174, 6, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -411,7 +413,7 @@ const BYTE resolve_fast_32bpp_1x2xmsaa_scaled_cs[] =
0, 0, 0, 0, 2, 64,
0, 0, 255, 3, 0, 0,
0, 16, 0, 0, 0, 0,
0, 64, 7, 0, 0, 0,
0, 32, 7, 0, 0, 0,
31, 0, 4, 3, 42, 0,
16, 0, 0, 0, 0, 0,
138, 0, 0, 17, 50, 0,
@ -519,7 +521,7 @@ const BYTE resolve_fast_32bpp_1x2xmsaa_scaled_cs[] =
114, 0, 16, 0, 4, 0,
0, 0, 2, 64, 0, 0,
2, 0, 0, 0, 3, 0,
0, 0, 12, 0, 0, 0,
0, 0, 11, 0, 0, 0,
0, 0, 0, 0, 2, 64,
0, 0, 10, 0, 0, 0,
28, 0, 0, 0, 13, 0,
@ -670,6 +672,16 @@ const BYTE resolve_fast_32bpp_1x2xmsaa_scaled_cs[] =
0, 0, 26, 0, 16, 0,
0, 0, 0, 0, 26, 0,
16, 0, 1, 0, 0, 0,
41, 0, 0, 7, 34, 0,
16, 0, 0, 0, 0, 0,
26, 0, 16, 0, 0, 0,
0, 0, 1, 64, 0, 0,
11, 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, 26, 0,
16, 0, 0, 0, 0, 0,
85, 0, 0, 7, 18, 0,
16, 0, 0, 0, 0, 0,
10, 0, 16, 0, 0, 0,
@ -737,7 +749,7 @@ const BYTE resolve_fast_32bpp_1x2xmsaa_scaled_cs[] =
18, 0, 16, 0, 0, 0,
0, 0, 1, 64, 0, 0,
4, 0, 0, 0, 1, 64,
0, 0, 25, 0, 0, 0,
0, 0, 24, 0, 0, 0,
10, 128, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 76, 0,
@ -1514,11 +1526,11 @@ const BYTE resolve_fast_32bpp_1x2xmsaa_scaled_cs[] =
16, 0, 6, 0, 0, 0,
62, 0, 0, 1, 83, 84,
65, 84, 148, 0, 0, 0,
216, 0, 0, 0, 9, 0,
218, 0, 0, 0, 9, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 63, 0, 0, 0,
46, 0, 0, 0, 10, 0,
0, 0, 64, 0, 0, 0,
47, 0, 0, 0, 10, 0,
0, 0, 17, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 9
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].xxxz, l(1023, 4096, 0x40000000, 7)
and r0.xyzw, CB0[0][0].xxxz, l(1023, 4096, 0x20000000, 7)
if_nz r0.z
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -64,7 +64,7 @@ mov r4.y, r3.x
bfi r2.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r4.xxxy, l(0, 0, 0, 0)
bfi r0.z, l(10), l(5), CB0[0][0].w, l(0)
bfi r3.xz, l(4, 0, 4, 0), l(3, 0, 3, 0), r3.zzwz, l(0, 0, 0, 0)
ubfe r4.xy, l(12, 3, 0, 0), l(13, 28, 0, 0), CB0[0][0].xwxx
ubfe r4.xy, l(11, 3, 0, 0), l(13, 28, 0, 0), CB0[0][0].xwxx
ishl r5.x, vThreadID.x, l(3)
umax r5.y, r1.y, vThreadID.y
imad r2.zw, r2.zzzw, r2.xxxy, r5.xxxy
@ -97,6 +97,8 @@ endif
imul null, r0.y, r4.w, r4.z
imad r1.y, r2.w, r4.z, r2.z
imad r0.x, r0.x, r0.y, r1.y
ishl r0.y, r0.y, l(11)
udiv null, r0.x, r0.x, r0.y
ushr r0.x, r0.x, l(2)
ine r2.zw, r4.yyyy, l(0, 0, 2, 3)
and r0.y, r2.w, r2.z
@ -132,7 +134,7 @@ if_nz r0.x
mov r4.xyz, r4.xzzx
endif
if_nz r1.w
ubfe r0.x, l(4), l(25), CB0[0][0].x
ubfe r0.x, l(4), l(24), CB0[0][0].x
switch r0.x
case l(0)
case l(1)
@ -276,20 +278,20 @@ if_nz r0.z
endif
store_uav_typed U0[0].xyzw, r0.xxxx, r6.xyzw
ret
// Approximately 231 instruction slots used
// Approximately 233 instruction slots used
#endif
const BYTE resolve_fast_32bpp_4xmsaa_scaled_cs[] =
{
68, 88, 66, 67, 14, 95,
192, 101, 206, 7, 87, 6,
115, 44, 23, 110, 38, 104,
121, 44, 1, 0, 0, 0,
84, 31, 0, 0, 5, 0,
68, 88, 66, 67, 174, 152,
114, 154, 173, 135, 151, 111,
177, 182, 183, 183, 204, 11,
136, 150, 1, 0, 0, 0,
144, 31, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
184, 30, 0, 0, 82, 68,
244, 30, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -397,8 +399,8 @@ const BYTE resolve_fast_32bpp_4xmsaa_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
252, 27, 0, 0, 81, 0,
5, 0, 255, 6, 0, 0,
56, 28, 0, 0, 81, 0,
5, 0, 14, 7, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -426,7 +428,7 @@ const BYTE resolve_fast_32bpp_4xmsaa_scaled_cs[] =
0, 0, 0, 0, 2, 64,
0, 0, 255, 3, 0, 0,
0, 16, 0, 0, 0, 0,
0, 64, 7, 0, 0, 0,
0, 32, 7, 0, 0, 0,
31, 0, 4, 3, 42, 0,
16, 0, 0, 0, 0, 0,
138, 0, 0, 17, 50, 0,
@ -533,7 +535,7 @@ const BYTE resolve_fast_32bpp_4xmsaa_scaled_cs[] =
0, 0, 138, 0, 0, 17,
50, 0, 16, 0, 4, 0,
0, 0, 2, 64, 0, 0,
12, 0, 0, 0, 3, 0,
11, 0, 0, 0, 3, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 64,
0, 0, 13, 0, 0, 0,
@ -677,7 +679,17 @@ const BYTE resolve_fast_32bpp_4xmsaa_scaled_cs[] =
16, 0, 0, 0, 0, 0,
26, 0, 16, 0, 0, 0,
0, 0, 26, 0, 16, 0,
1, 0, 0, 0, 85, 0,
1, 0, 0, 0, 41, 0,
0, 7, 34, 0, 16, 0,
0, 0, 0, 0, 26, 0,
16, 0, 0, 0, 0, 0,
1, 64, 0, 0, 11, 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, 26, 0, 16, 0,
0, 0, 0, 0, 85, 0,
0, 7, 18, 0, 16, 0,
0, 0, 0, 0, 10, 0,
16, 0, 0, 0, 0, 0,
@ -816,7 +828,7 @@ const BYTE resolve_fast_32bpp_4xmsaa_scaled_cs[] =
18, 0, 16, 0, 0, 0,
0, 0, 1, 64, 0, 0,
4, 0, 0, 0, 1, 64,
0, 0, 25, 0, 0, 0,
0, 0, 24, 0, 0, 0,
10, 128, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 76, 0,
@ -1593,11 +1605,11 @@ const BYTE resolve_fast_32bpp_4xmsaa_scaled_cs[] =
16, 0, 6, 0, 0, 0,
62, 0, 0, 1, 83, 84,
65, 84, 148, 0, 0, 0,
231, 0, 0, 0, 9, 0,
233, 0, 0, 0, 9, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 66, 0, 0, 0,
44, 0, 0, 0, 12, 0,
0, 0, 67, 0, 0, 0,
45, 0, 0, 0, 12, 0,
0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 8
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].zxxz, l(7, 1023, 0x40000000, 8)
and r0.xyzw, CB0[0][0].zxxz, l(7, 1023, 0x20000000, 8)
if_nz r0.z
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -66,7 +66,7 @@ mov r5.y, r3.x
bfi r2.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r5.xxxy, l(0, 0, 0, 0)
bfi r0.z, l(10), l(5), CB0[0][0].w, l(0)
bfi r3.xz, l(4, 0, 4, 0), l(3, 0, 3, 0), r3.zzwz, l(0, 0, 0, 0)
ubfe r5.xyz, l(2, 3, 12, 0), l(10, 28, 13, 0), CB0[0][0].xwxx
ubfe r5.xyz, l(2, 3, 11, 0), l(10, 28, 13, 0), CB0[0][0].xwxx
umax r4.y, r1.y, vThreadID.y
imad r1.yw, r2.zzzw, r2.xxxy, r4.xxxy
uge r2.z, l(3), r5.y
@ -94,6 +94,8 @@ imul null, r2.z, r6.z, r6.y
imad r1.y, r1.w, r6.x, r1.y
ishl r1.y, r1.y, l(1)
imad r0.y, r0.y, r2.z, r1.y
ishl r1.y, r2.z, l(11)
udiv null, r0.y, r0.y, r1.y
ushr r0.y, r0.y, l(2)
ld r5.xyzw, r0.yyyy, T0[0].zwxy
iadd r0.y, r0.y, l(1)
@ -113,7 +115,7 @@ if_nz r0.y
mov r5.xyzw, r5.xyxy
endif
if_nz r1.z
ubfe r0.y, l(4), l(25), CB0[0][0].x
ubfe r0.y, l(4), l(24), CB0[0][0].x
ieq r1.xy, r0.yyyy, l(5, 7, 0, 0)
or r0.y, r1.y, r1.x
if_nz r0.y
@ -249,20 +251,20 @@ if_nz r0.z
endif
store_uav_typed U0[0].xyzw, r0.yyyy, r6.xyzw
ret
// Approximately 204 instruction slots used
// Approximately 206 instruction slots used
#endif
const BYTE resolve_fast_64bpp_1x2xmsaa_scaled_cs[] =
{
68, 88, 66, 67, 130, 145,
43, 217, 232, 157, 214, 156,
20, 90, 116, 80, 12, 6,
235, 166, 1, 0, 0, 0,
228, 27, 0, 0, 5, 0,
68, 88, 66, 67, 229, 216,
127, 11, 179, 132, 148, 134,
14, 252, 107, 90, 151, 209,
147, 95, 1, 0, 0, 0,
32, 28, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
72, 27, 0, 0, 82, 68,
132, 27, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -370,8 +372,8 @@ const BYTE resolve_fast_64bpp_1x2xmsaa_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
140, 24, 0, 0, 81, 0,
5, 0, 35, 6, 0, 0,
200, 24, 0, 0, 81, 0,
5, 0, 50, 6, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -399,7 +401,7 @@ const BYTE resolve_fast_64bpp_1x2xmsaa_scaled_cs[] =
0, 0, 0, 0, 2, 64,
0, 0, 7, 0, 0, 0,
255, 3, 0, 0, 0, 0,
0, 64, 8, 0, 0, 0,
0, 32, 8, 0, 0, 0,
31, 0, 4, 3, 42, 0,
16, 0, 0, 0, 0, 0,
138, 0, 0, 17, 50, 0,
@ -514,7 +516,7 @@ const BYTE resolve_fast_64bpp_1x2xmsaa_scaled_cs[] =
0, 17, 114, 0, 16, 0,
5, 0, 0, 0, 2, 64,
0, 0, 2, 0, 0, 0,
3, 0, 0, 0, 12, 0,
3, 0, 0, 0, 11, 0,
0, 0, 0, 0, 0, 0,
2, 64, 0, 0, 10, 0,
0, 0, 28, 0, 0, 0,
@ -643,6 +645,16 @@ const BYTE resolve_fast_64bpp_1x2xmsaa_scaled_cs[] =
0, 0, 0, 0, 26, 0,
16, 0, 0, 0, 0, 0,
42, 0, 16, 0, 2, 0,
0, 0, 26, 0, 16, 0,
1, 0, 0, 0, 41, 0,
0, 7, 34, 0, 16, 0,
1, 0, 0, 0, 42, 0,
16, 0, 2, 0, 0, 0,
1, 64, 0, 0, 11, 0,
0, 0, 78, 0, 0, 8,
0, 208, 0, 0, 34, 0,
16, 0, 0, 0, 0, 0,
26, 0, 16, 0, 0, 0,
0, 0, 26, 0, 16, 0,
1, 0, 0, 0, 85, 0,
0, 7, 34, 0, 16, 0,
@ -712,7 +724,7 @@ const BYTE resolve_fast_64bpp_1x2xmsaa_scaled_cs[] =
16, 0, 0, 0, 0, 0,
1, 64, 0, 0, 4, 0,
0, 0, 1, 64, 0, 0,
25, 0, 0, 0, 10, 128,
24, 0, 0, 0, 10, 128,
48, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 32, 0, 0, 10,
@ -1419,11 +1431,11 @@ const BYTE resolve_fast_64bpp_1x2xmsaa_scaled_cs[] =
70, 14, 16, 0, 6, 0,
0, 0, 62, 0, 0, 1,
83, 84, 65, 84, 148, 0,
0, 0, 204, 0, 0, 0,
0, 0, 206, 0, 0, 0,
8, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 62, 0,
0, 0, 43, 0, 0, 0,
0, 0, 0, 0, 63, 0,
0, 0, 44, 0, 0, 0,
8, 0, 0, 0, 18, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 8
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].zxxz, l(7, 1023, 0x40000000, 8)
and r0.xyzw, CB0[0][0].zxxz, l(7, 1023, 0x20000000, 8)
if_nz r0.z
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -66,7 +66,7 @@ mov r5.y, r3.x
bfi r2.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r5.xxxy, l(0, 0, 0, 0)
bfi r0.z, l(10), l(5), CB0[0][0].w, l(0)
bfi r3.xz, l(4, 0, 4, 0), l(3, 0, 3, 0), r3.zzwz, l(0, 0, 0, 0)
ubfe r5.xy, l(12, 3, 0, 0), l(13, 28, 0, 0), CB0[0][0].xwxx
ubfe r5.xy, l(11, 3, 0, 0), l(13, 28, 0, 0), CB0[0][0].xwxx
umax r4.y, r1.y, vThreadID.y
imad r1.yw, r2.zzzw, r2.xxxy, r4.xxxy
uge r2.z, l(3), r5.y
@ -93,6 +93,8 @@ imul null, r2.z, r6.z, r6.y
imad r1.y, r1.w, r6.x, r1.y
ishl r1.y, r1.y, l(1)
imad r0.y, r0.y, r2.z, r1.y
ishl r1.y, r2.z, l(11)
udiv null, r0.y, r0.y, r1.y
ushr r0.y, r0.y, l(1)
ld r5.zw, r0.yyyy, T0[0].zwxy
iadd r6.xyz, r0.yyyy, l(2, 4, 6, 0)
@ -114,7 +116,7 @@ if_nz r0.y
mov r5.xyzw, r5.xyxy
endif
if_nz r1.z
ubfe r0.y, l(4), l(25), CB0[0][0].x
ubfe r0.y, l(4), l(24), CB0[0][0].x
ieq r1.xy, r0.yyyy, l(5, 7, 0, 0)
or r0.y, r1.y, r1.x
if_nz r0.y
@ -250,20 +252,20 @@ if_nz r0.z
endif
store_uav_typed U0[0].xyzw, r0.yyyy, r7.xyzw
ret
// Approximately 205 instruction slots used
// Approximately 207 instruction slots used
#endif
const BYTE resolve_fast_64bpp_4xmsaa_scaled_cs[] =
{
68, 88, 66, 67, 52, 253,
249, 89, 76, 182, 120, 18,
57, 137, 120, 39, 166, 211,
58, 112, 1, 0, 0, 0,
4, 28, 0, 0, 5, 0,
68, 88, 66, 67, 104, 87,
183, 27, 147, 240, 163, 194,
4, 176, 73, 155, 224, 235,
183, 137, 1, 0, 0, 0,
64, 28, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
104, 27, 0, 0, 82, 68,
164, 27, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -371,8 +373,8 @@ const BYTE resolve_fast_64bpp_4xmsaa_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
172, 24, 0, 0, 81, 0,
5, 0, 43, 6, 0, 0,
232, 24, 0, 0, 81, 0,
5, 0, 58, 6, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -400,7 +402,7 @@ const BYTE resolve_fast_64bpp_4xmsaa_scaled_cs[] =
0, 0, 0, 0, 2, 64,
0, 0, 7, 0, 0, 0,
255, 3, 0, 0, 0, 0,
0, 64, 8, 0, 0, 0,
0, 32, 8, 0, 0, 0,
31, 0, 4, 3, 42, 0,
16, 0, 0, 0, 0, 0,
138, 0, 0, 17, 50, 0,
@ -514,7 +516,7 @@ const BYTE resolve_fast_64bpp_4xmsaa_scaled_cs[] =
0, 0, 0, 0, 138, 0,
0, 17, 50, 0, 16, 0,
5, 0, 0, 0, 2, 64,
0, 0, 12, 0, 0, 0,
0, 0, 11, 0, 0, 0,
3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
2, 64, 0, 0, 13, 0,
@ -637,6 +639,16 @@ const BYTE resolve_fast_64bpp_4xmsaa_scaled_cs[] =
0, 0, 26, 0, 16, 0,
0, 0, 0, 0, 42, 0,
16, 0, 2, 0, 0, 0,
26, 0, 16, 0, 1, 0,
0, 0, 41, 0, 0, 7,
34, 0, 16, 0, 1, 0,
0, 0, 42, 0, 16, 0,
2, 0, 0, 0, 1, 64,
0, 0, 11, 0, 0, 0,
78, 0, 0, 8, 0, 208,
0, 0, 34, 0, 16, 0,
0, 0, 0, 0, 26, 0,
16, 0, 0, 0, 0, 0,
26, 0, 16, 0, 1, 0,
0, 0, 85, 0, 0, 7,
34, 0, 16, 0, 0, 0,
@ -718,7 +730,7 @@ const BYTE resolve_fast_64bpp_4xmsaa_scaled_cs[] =
34, 0, 16, 0, 0, 0,
0, 0, 1, 64, 0, 0,
4, 0, 0, 0, 1, 64,
0, 0, 25, 0, 0, 0,
0, 0, 24, 0, 0, 0,
10, 128, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 32, 0,
@ -1425,11 +1437,11 @@ const BYTE resolve_fast_64bpp_4xmsaa_scaled_cs[] =
0, 0, 70, 14, 16, 0,
7, 0, 0, 0, 62, 0,
0, 1, 83, 84, 65, 84,
148, 0, 0, 0, 205, 0,
148, 0, 0, 0, 207, 0,
0, 0, 8, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
61, 0, 0, 0, 40, 0,
62, 0, 0, 0, 41, 0,
0, 0, 9, 0, 0, 0,
18, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 16
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].zxxz, l(7, 1023, 0x40000000, 8)
and r0.xyzw, CB0[0][0].zxxz, l(7, 1023, 0x20000000, 8)
if_nz r0.z
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -61,7 +61,7 @@ uge r0.z, r4.x, r0.z
if_nz r0.z
ret
endif
ubfe r5.xyzw, l(2, 12, 4, 1), l(10, 13, 25, 29), CB0[0][0].xxxx
ubfe r5.xyzw, l(2, 11, 4, 1), l(10, 13, 24, 28), CB0[0][0].xxxx
mov r6.x, CB0[0][0].y
mov r6.y, r3.x
bfi r2.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r6.xxxy, l(0, 0, 0, 0)
@ -101,6 +101,8 @@ imul null, r1.y, r6.z, r6.y
imad r2.z, r2.w, r6.x, r2.z
ishl r2.z, r2.z, r5.w
imad r0.y, r0.y, r1.y, r2.z
ishl r1.y, r1.y, l(11)
udiv null, r0.y, r0.y, r1.y
iadd r1.y, r4.z, r5.w
ishl r1.y, l(1), r1.y
if_nz r5.w
@ -854,20 +856,20 @@ if_nz r0.z
endif
store_uav_typed U0[0].xyzw, r0.yyyy, r6.xyzw
ret
// Approximately 809 instruction slots used
// Approximately 811 instruction slots used
#endif
const BYTE resolve_full_128bpp_scaled_cs[] =
{
68, 88, 66, 67, 56, 166,
174, 30, 198, 99, 112, 81,
100, 142, 26, 114, 81, 8,
225, 207, 1, 0, 0, 0,
188, 92, 0, 0, 5, 0,
68, 88, 66, 67, 222, 231,
24, 101, 69, 158, 231, 93,
157, 64, 249, 12, 108, 158,
86, 115, 1, 0, 0, 0,
248, 92, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
32, 92, 0, 0, 82, 68,
92, 92, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -975,8 +977,8 @@ const BYTE resolve_full_128bpp_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
100, 89, 0, 0, 81, 0,
5, 0, 89, 22, 0, 0,
160, 89, 0, 0, 81, 0,
5, 0, 104, 22, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -1003,7 +1005,7 @@ const BYTE resolve_full_128bpp_scaled_cs[] =
0, 0, 0, 0, 0, 0,
2, 64, 0, 0, 7, 0,
0, 0, 255, 3, 0, 0,
0, 0, 0, 64, 8, 0,
0, 0, 0, 32, 8, 0,
0, 0, 31, 0, 4, 3,
42, 0, 16, 0, 0, 0,
0, 0, 138, 0, 0, 17,
@ -1075,11 +1077,11 @@ const BYTE resolve_full_128bpp_scaled_cs[] =
0, 17, 242, 0, 16, 0,
5, 0, 0, 0, 2, 64,
0, 0, 2, 0, 0, 0,
12, 0, 0, 0, 4, 0,
11, 0, 0, 0, 4, 0,
0, 0, 1, 0, 0, 0,
2, 64, 0, 0, 10, 0,
0, 0, 13, 0, 0, 0,
25, 0, 0, 0, 29, 0,
24, 0, 0, 0, 28, 0,
0, 0, 6, 128, 48, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
@ -1281,7 +1283,17 @@ const BYTE resolve_full_128bpp_scaled_cs[] =
16, 0, 0, 0, 0, 0,
26, 0, 16, 0, 1, 0,
0, 0, 42, 0, 16, 0,
2, 0, 0, 0, 30, 0,
2, 0, 0, 0, 41, 0,
0, 7, 34, 0, 16, 0,
1, 0, 0, 0, 26, 0,
16, 0, 1, 0, 0, 0,
1, 64, 0, 0, 11, 0,
0, 0, 78, 0, 0, 8,
0, 208, 0, 0, 34, 0,
16, 0, 0, 0, 0, 0,
26, 0, 16, 0, 0, 0,
0, 0, 26, 0, 16, 0,
1, 0, 0, 0, 30, 0,
0, 7, 34, 0, 16, 0,
1, 0, 0, 0, 42, 0,
16, 0, 4, 0, 0, 0,
@ -4791,11 +4803,11 @@ const BYTE resolve_full_128bpp_scaled_cs[] =
16, 0, 6, 0, 0, 0,
62, 0, 0, 1, 83, 84,
65, 84, 148, 0, 0, 0,
41, 3, 0, 0, 16, 0,
43, 3, 0, 0, 16, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 66, 0,
0, 0, 187, 0, 0, 0,
120, 0, 0, 0, 59, 0,
0, 0, 188, 0, 0, 0,
121, 0, 0, 0, 59, 0,
0, 0, 39, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 24
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].xxzz, l(1023, 0x40000000, 7, 8)
and r0.xyzw, CB0[0][0].xxzz, l(1023, 0x20000000, 7, 8)
if_nz r0.y
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -61,7 +61,7 @@ uge r0.y, r4.x, r0.y
if_nz r0.y
ret
endif
ubfe r5.xyzw, l(2, 12, 4, 1), l(10, 13, 25, 29), CB0[0][0].xxxx
ubfe r5.xyzw, l(2, 11, 4, 1), l(10, 13, 24, 28), CB0[0][0].xxxx
mov r6.x, CB0[0][0].y
mov r6.y, r3.x
bfi r2.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r6.xxxy, l(0, 0, 0, 0)
@ -100,6 +100,8 @@ imul null, r1.y, r7.z, r7.y
imad r2.z, r2.w, r7.x, r2.z
ishl r2.z, r2.z, r5.w
imad r0.x, r0.x, r1.y, r2.z
ishl r1.y, r1.y, l(11)
udiv null, r0.x, r0.x, r1.y
iadd r1.y, r4.y, r5.w
ishl r2.z, l(1), r1.y
if_nz r5.w
@ -1398,20 +1400,20 @@ if_nz r0.z
endif
store_uav_typed U0[0].xyzw, r0.wwww, r0.xyxx
ret
// Approximately 1353 instruction slots used
// Approximately 1355 instruction slots used
#endif
const BYTE resolve_full_16bpp_scaled_cs[] =
{
68, 88, 66, 67, 86, 81,
102, 164, 109, 81, 1, 135,
38, 56, 93, 24, 251, 173,
109, 54, 1, 0, 0, 0,
24, 164, 0, 0, 5, 0,
68, 88, 66, 67, 6, 134,
89, 179, 240, 20, 103, 34,
167, 211, 125, 178, 23, 5,
125, 86, 1, 0, 0, 0,
84, 164, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
124, 163, 0, 0, 82, 68,
184, 163, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -1519,8 +1521,8 @@ const BYTE resolve_full_16bpp_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
192, 160, 0, 0, 81, 0,
5, 0, 48, 40, 0, 0,
252, 160, 0, 0, 81, 0,
5, 0, 63, 40, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -1546,7 +1548,7 @@ const BYTE resolve_full_16bpp_scaled_cs[] =
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
2, 64, 0, 0, 255, 3,
0, 0, 0, 0, 0, 64,
0, 0, 0, 0, 0, 32,
7, 0, 0, 0, 8, 0,
0, 0, 31, 0, 4, 3,
26, 0, 16, 0, 0, 0,
@ -1619,11 +1621,11 @@ const BYTE resolve_full_16bpp_scaled_cs[] =
0, 17, 242, 0, 16, 0,
5, 0, 0, 0, 2, 64,
0, 0, 2, 0, 0, 0,
12, 0, 0, 0, 4, 0,
11, 0, 0, 0, 4, 0,
0, 0, 1, 0, 0, 0,
2, 64, 0, 0, 10, 0,
0, 0, 13, 0, 0, 0,
25, 0, 0, 0, 29, 0,
24, 0, 0, 0, 28, 0,
0, 0, 6, 128, 48, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
@ -1825,6 +1827,16 @@ const BYTE resolve_full_16bpp_scaled_cs[] =
0, 0, 26, 0, 16, 0,
1, 0, 0, 0, 42, 0,
16, 0, 2, 0, 0, 0,
41, 0, 0, 7, 34, 0,
16, 0, 1, 0, 0, 0,
26, 0, 16, 0, 1, 0,
0, 0, 1, 64, 0, 0,
11, 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, 26, 0,
16, 0, 1, 0, 0, 0,
30, 0, 0, 7, 34, 0,
16, 0, 1, 0, 0, 0,
26, 0, 16, 0, 4, 0,
@ -8379,11 +8391,11 @@ const BYTE resolve_full_16bpp_scaled_cs[] =
0, 0, 70, 0, 16, 0,
0, 0, 0, 0, 62, 0,
0, 1, 83, 84, 65, 84,
148, 0, 0, 0, 73, 5,
148, 0, 0, 0, 75, 5,
0, 0, 24, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 133, 0, 0, 0,
69, 1, 0, 0, 177, 0,
70, 1, 0, 0, 178, 0,
0, 0, 62, 0, 0, 0,
33, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 24
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].xxzz, l(1023, 0x40000000, 7, 8)
and r0.xyzw, CB0[0][0].xxzz, l(1023, 0x20000000, 7, 8)
if_nz r0.y
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -61,7 +61,7 @@ uge r0.y, r4.x, r0.y
if_nz r0.y
ret
endif
ubfe r5.xyzw, l(2, 12, 4, 1), l(10, 13, 25, 29), CB0[0][0].xxxx
ubfe r5.xyzw, l(2, 11, 4, 1), l(10, 13, 24, 28), CB0[0][0].xxxx
mov r6.x, CB0[0][0].y
mov r6.y, r3.x
bfi r2.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r6.xxxy, l(0, 0, 0, 0)
@ -100,6 +100,8 @@ imul null, r1.y, r7.z, r7.y
imad r2.z, r2.w, r7.x, r2.z
ishl r2.z, r2.z, r5.w
imad r0.x, r0.x, r1.y, r2.z
ishl r1.y, r1.y, l(11)
udiv null, r0.x, r0.x, r1.y
iadd r1.y, r4.y, r5.w
ishl r2.z, l(1), r1.y
if_nz r5.w
@ -1410,20 +1412,20 @@ if_nz r0.z
endif
store_uav_typed U0[0].xyzw, r0.xxxx, r10.zywx
ret
// Approximately 1365 instruction slots used
// Approximately 1367 instruction slots used
#endif
const BYTE resolve_full_32bpp_scaled_cs[] =
{
68, 88, 66, 67, 32, 117,
51, 44, 156, 252, 157, 178,
43, 80, 11, 201, 46, 14,
66, 81, 1, 0, 0, 0,
236, 164, 0, 0, 5, 0,
68, 88, 66, 67, 6, 158,
174, 163, 148, 166, 215, 79,
210, 99, 73, 246, 195, 105,
236, 221, 1, 0, 0, 0,
40, 165, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
80, 164, 0, 0, 82, 68,
140, 164, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -1531,8 +1533,8 @@ const BYTE resolve_full_32bpp_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
148, 161, 0, 0, 81, 0,
5, 0, 101, 40, 0, 0,
208, 161, 0, 0, 81, 0,
5, 0, 116, 40, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -1558,7 +1560,7 @@ const BYTE resolve_full_32bpp_scaled_cs[] =
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
2, 64, 0, 0, 255, 3,
0, 0, 0, 0, 0, 64,
0, 0, 0, 0, 0, 32,
7, 0, 0, 0, 8, 0,
0, 0, 31, 0, 4, 3,
26, 0, 16, 0, 0, 0,
@ -1631,11 +1633,11 @@ const BYTE resolve_full_32bpp_scaled_cs[] =
0, 17, 242, 0, 16, 0,
5, 0, 0, 0, 2, 64,
0, 0, 2, 0, 0, 0,
12, 0, 0, 0, 4, 0,
11, 0, 0, 0, 4, 0,
0, 0, 1, 0, 0, 0,
2, 64, 0, 0, 10, 0,
0, 0, 13, 0, 0, 0,
25, 0, 0, 0, 29, 0,
24, 0, 0, 0, 28, 0,
0, 0, 6, 128, 48, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
@ -1837,6 +1839,16 @@ const BYTE resolve_full_32bpp_scaled_cs[] =
0, 0, 26, 0, 16, 0,
1, 0, 0, 0, 42, 0,
16, 0, 2, 0, 0, 0,
41, 0, 0, 7, 34, 0,
16, 0, 1, 0, 0, 0,
26, 0, 16, 0, 1, 0,
0, 0, 1, 64, 0, 0,
11, 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, 26, 0,
16, 0, 1, 0, 0, 0,
30, 0, 0, 7, 34, 0,
16, 0, 1, 0, 0, 0,
26, 0, 16, 0, 4, 0,
@ -8427,11 +8439,11 @@ const BYTE resolve_full_32bpp_scaled_cs[] =
16, 0, 10, 0, 0, 0,
62, 0, 0, 1, 83, 84,
65, 84, 148, 0, 0, 0,
85, 5, 0, 0, 24, 0,
87, 5, 0, 0, 24, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 134, 0,
0, 0, 56, 1, 0, 0,
178, 0, 0, 0, 63, 0,
0, 0, 57, 1, 0, 0,
179, 0, 0, 0, 63, 0,
0, 0, 34, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 24
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].zxxz, l(7, 1023, 0x40000000, 8)
and r0.xyzw, CB0[0][0].zxxz, l(7, 1023, 0x20000000, 8)
if_nz r0.z
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -61,7 +61,7 @@ uge r0.z, r4.x, r0.z
if_nz r0.z
ret
endif
ubfe r5.xyzw, l(2, 12, 4, 1), l(10, 13, 25, 29), CB0[0][0].xxxx
ubfe r5.xyzw, l(2, 11, 4, 1), l(10, 13, 24, 28), CB0[0][0].xxxx
mov r6.x, CB0[0][0].y
mov r6.y, r3.x
bfi r2.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r6.xxxy, l(0, 0, 0, 0)
@ -100,6 +100,8 @@ imul null, r1.y, r7.z, r7.y
imad r2.z, r2.w, r7.x, r2.z
ishl r2.z, r2.z, r5.w
imad r0.y, r0.y, r1.y, r2.z
ishl r1.y, r1.y, l(11)
udiv null, r0.y, r0.y, r1.y
iadd r1.y, r4.y, r5.w
ishl r2.z, l(1), r1.y
if_nz r5.w
@ -1353,20 +1355,20 @@ if_nz r0.z
endif
store_uav_typed U0[0].xyzw, r0.yyyy, r8.xyzw
ret
// Approximately 1308 instruction slots used
// Approximately 1310 instruction slots used
#endif
const BYTE resolve_full_64bpp_scaled_cs[] =
{
68, 88, 66, 67, 48, 94,
190, 104, 196, 214, 108, 18,
212, 104, 60, 245, 31, 2,
219, 12, 1, 0, 0, 0,
228, 156, 0, 0, 5, 0,
68, 88, 66, 67, 41, 45,
91, 69, 195, 67, 185, 148,
31, 95, 228, 114, 40, 107,
156, 11, 1, 0, 0, 0,
32, 157, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
72, 156, 0, 0, 82, 68,
132, 156, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -1474,8 +1476,8 @@ const BYTE resolve_full_64bpp_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
140, 153, 0, 0, 81, 0,
5, 0, 99, 38, 0, 0,
200, 153, 0, 0, 81, 0,
5, 0, 114, 38, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -1502,7 +1504,7 @@ const BYTE resolve_full_64bpp_scaled_cs[] =
0, 0, 0, 0, 0, 0,
2, 64, 0, 0, 7, 0,
0, 0, 255, 3, 0, 0,
0, 0, 0, 64, 8, 0,
0, 0, 0, 32, 8, 0,
0, 0, 31, 0, 4, 3,
42, 0, 16, 0, 0, 0,
0, 0, 138, 0, 0, 17,
@ -1574,11 +1576,11 @@ const BYTE resolve_full_64bpp_scaled_cs[] =
0, 17, 242, 0, 16, 0,
5, 0, 0, 0, 2, 64,
0, 0, 2, 0, 0, 0,
12, 0, 0, 0, 4, 0,
11, 0, 0, 0, 4, 0,
0, 0, 1, 0, 0, 0,
2, 64, 0, 0, 10, 0,
0, 0, 13, 0, 0, 0,
25, 0, 0, 0, 29, 0,
24, 0, 0, 0, 28, 0,
0, 0, 6, 128, 48, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
@ -1780,6 +1782,16 @@ const BYTE resolve_full_64bpp_scaled_cs[] =
0, 0, 26, 0, 16, 0,
1, 0, 0, 0, 42, 0,
16, 0, 2, 0, 0, 0,
41, 0, 0, 7, 34, 0,
16, 0, 1, 0, 0, 0,
26, 0, 16, 0, 1, 0,
0, 0, 1, 64, 0, 0,
11, 0, 0, 0, 78, 0,
0, 8, 0, 208, 0, 0,
34, 0, 16, 0, 0, 0,
0, 0, 26, 0, 16, 0,
0, 0, 0, 0, 26, 0,
16, 0, 1, 0, 0, 0,
30, 0, 0, 7, 34, 0,
16, 0, 1, 0, 0, 0,
26, 0, 16, 0, 4, 0,
@ -8027,11 +8039,11 @@ const BYTE resolve_full_64bpp_scaled_cs[] =
70, 14, 16, 0, 8, 0,
0, 0, 62, 0, 0, 1,
83, 84, 65, 84, 148, 0,
0, 0, 28, 5, 0, 0,
0, 0, 30, 5, 0, 0,
24, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
118, 0, 0, 0, 28, 1,
0, 0, 187, 0, 0, 0,
118, 0, 0, 0, 29, 1,
0, 0, 188, 0, 0, 0,
62, 0, 0, 0, 40, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 17
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].xxzz, l(1023, 0x40000000, 8, 0x01000000)
and r0.xyzw, CB0[0][0].xxzz, l(1023, 0x20000000, 8, 0x01000000)
if_nz r0.y
ubfe r1.xy, l(2, 2, 0, 0), l(17, 20, 0, 0), CB0[0][0].yyyy
else
@ -58,7 +58,7 @@ uge r0.y, vThreadID.x, r0.y
if_nz r0.y
ret
endif
ubfe r4.xyzw, l(2, 12, 4, 1), l(10, 13, 25, 29), CB0[0][0].xxxx
ubfe r4.xyzw, l(2, 11, 4, 1), l(10, 13, 24, 28), CB0[0][0].xxxx
mov r5.x, CB0[0][0].y
mov r5.y, r3.x
bfi r1.zw, l(0, 0, 4, 1), l(0, 0, 3, 3), r5.xxxy, l(0, 0, 0, 0)
@ -98,6 +98,8 @@ imul null, r1.w, r6.z, r6.y
imad r1.y, r1.z, r6.x, r1.y
ishl r1.y, r1.y, r4.w
imad r0.x, r0.x, r1.w, r1.y
ishl r1.y, r1.w, l(11)
udiv null, r0.x, r0.x, r1.y
iadd r1.y, r4.w, r5.y
ishl r1.z, l(1), r1.y
if_nz r0.w
@ -718,20 +720,20 @@ imad r0.y, r2.z, l(0x00010000), r0.y
imad r1.y, r2.w, l(0x01000000), r0.y
store_uav_typed U0[0].xyzw, r0.xxxx, r1.xyzw
ret
// Approximately 673 instruction slots used
// Approximately 675 instruction slots used
#endif
const BYTE resolve_full_8bpp_scaled_cs[] =
{
68, 88, 66, 67, 255, 223,
249, 120, 50, 81, 146, 111,
94, 224, 105, 91, 88, 48,
194, 104, 1, 0, 0, 0,
208, 81, 0, 0, 5, 0,
68, 88, 66, 67, 90, 249,
142, 22, 19, 168, 112, 241,
237, 28, 119, 238, 127, 22,
182, 131, 1, 0, 0, 0,
12, 82, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
148, 2, 0, 0, 164, 2,
0, 0, 180, 2, 0, 0,
52, 81, 0, 0, 82, 68,
112, 81, 0, 0, 82, 68,
69, 70, 88, 2, 0, 0,
1, 0, 0, 0, 232, 0,
0, 0, 3, 0, 0, 0,
@ -839,8 +841,8 @@ const BYTE resolve_full_8bpp_scaled_cs[] =
71, 78, 8, 0, 0, 0,
0, 0, 0, 0, 8, 0,
0, 0, 83, 72, 69, 88,
120, 78, 0, 0, 81, 0,
5, 0, 158, 19, 0, 0,
180, 78, 0, 0, 81, 0,
5, 0, 173, 19, 0, 0,
106, 8, 0, 1, 89, 0,
0, 7, 70, 142, 48, 0,
0, 0, 0, 0, 0, 0,
@ -866,7 +868,7 @@ const BYTE resolve_full_8bpp_scaled_cs[] =
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
2, 64, 0, 0, 255, 3,
0, 0, 0, 0, 0, 64,
0, 0, 0, 0, 0, 32,
8, 0, 0, 0, 0, 0,
0, 1, 31, 0, 4, 3,
26, 0, 16, 0, 0, 0,
@ -923,12 +925,12 @@ const BYTE resolve_full_8bpp_scaled_cs[] =
0, 1, 138, 0, 0, 17,
242, 0, 16, 0, 4, 0,
0, 0, 2, 64, 0, 0,
2, 0, 0, 0, 12, 0,
2, 0, 0, 0, 11, 0,
0, 0, 4, 0, 0, 0,
1, 0, 0, 0, 2, 64,
0, 0, 10, 0, 0, 0,
13, 0, 0, 0, 25, 0,
0, 0, 29, 0, 0, 0,
13, 0, 0, 0, 24, 0,
0, 0, 28, 0, 0, 0,
6, 128, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 54, 0,
@ -1128,6 +1130,16 @@ const BYTE resolve_full_8bpp_scaled_cs[] =
0, 0, 0, 0, 10, 0,
16, 0, 0, 0, 0, 0,
58, 0, 16, 0, 1, 0,
0, 0, 26, 0, 16, 0,
1, 0, 0, 0, 41, 0,
0, 7, 34, 0, 16, 0,
1, 0, 0, 0, 58, 0,
16, 0, 1, 0, 0, 0,
1, 64, 0, 0, 11, 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, 26, 0, 16, 0,
1, 0, 0, 0, 30, 0,
0, 7, 34, 0, 16, 0,
@ -4189,11 +4201,11 @@ const BYTE resolve_full_8bpp_scaled_cs[] =
16, 0, 1, 0, 0, 0,
62, 0, 0, 1, 83, 84,
65, 84, 148, 0, 0, 0,
161, 2, 0, 0, 17, 0,
163, 2, 0, 0, 17, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 60, 0,
0, 0, 152, 0, 0, 0,
93, 0, 0, 0, 51, 0,
0, 0, 153, 0, 0, 0,
94, 0, 0, 0, 51, 0,
0, 0, 27, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,

View File

@ -39,6 +39,7 @@
%uint_16 = OpConstant %uint 16
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%int = OpTypeInt 32 1
%uint_2048 = OpConstant %uint 2048
%_struct_1014 = OpTypeStruct %v2uint %uint %uint
%_ptr_PushConstant__struct_1014 = OpTypePointer PushConstant %_struct_1014
%4495 = OpVariable %_ptr_PushConstant__struct_1014 PushConstant
@ -51,12 +52,11 @@
%uint_3 = OpConstant %uint 3
%uint_4096 = OpConstant %uint 4096
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_2047 = OpConstant %uint 2047
%uint_4 = OpConstant %uint 4
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_5 = OpConstant %uint 5
%uint_2047 = OpConstant %uint 2047
%_ptr_PushConstant_v2uint = OpTypePointer PushConstant %v2uint
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
@ -87,7 +87,7 @@
%23023 = OpBitwiseAnd %uint %15627 %uint_4096
%20495 = OpINotEqual %bool %23023 %uint_0
%8141 = OpShiftRightLogical %uint %15627 %uint_13
%24990 = OpBitwiseAnd %uint %8141 %uint_4095
%24990 = OpBitwiseAnd %uint %8141 %uint_2047
%8814 = OpCompositeConstruct %v2uint %20824 %20824
%8841 = OpShiftRightLogical %v2uint %8814 %1855
%22507 = OpShiftLeftLogical %v2uint %1828 %1856
@ -141,23 +141,23 @@
%22207 = OpCompositeExtract %uint %14279 0
%15197 = OpBitcast %int %22207
%15736 = OpUGreaterThanEqual %bool %22207 %13307
OpSelectionMerge %21237 None
OpBranchConditional %15736 %22228 %7940
%22228 = OpLabel
%22920 = OpBitcast %int %13307
%17199 = OpSNegate %int %22920
OpBranch %21237
%7940 = OpLabel
%16658 = OpBitcast %int %13307
OpBranch %21237
%21237 = OpLabel
%10046 = OpPhi %int %17199 %22228 %16658 %7940
OpSelectionMerge %22850 None
OpBranchConditional %15736 %23061 %24565
%24565 = OpLabel
%20693 = OpBitcast %int %13307
OpBranch %22850
%23061 = OpLabel
%18885 = OpBitcast %int %13307
%17199 = OpSNegate %int %18885
OpBranch %22850
%22850 = OpLabel
%10046 = OpPhi %int %17199 %23061 %20693 %24565
%11983 = OpIAdd %int %15197 %10046
%17709 = OpBitcast %uint %11983
%21574 = OpCompositeInsert %v2uint %17709 %14279 0
OpBranch %18756
%18756 = OpLabel
%17360 = OpPhi %v2uint %14279 %17447 %21574 %21237
%17360 = OpPhi %v2uint %14279 %17447 %21574 %22850
%24023 = OpCompositeExtract %uint %21145 0
%22303 = OpCompositeExtract %uint %21145 1
%13170 = OpIMul %uint %24023 %22303
@ -167,15 +167,17 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %17360 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_0
%6535 = OpIAdd %uint %14551 %19199
%21961 = OpShiftRightLogical %uint %6535 %uint_2
%17379 = OpVectorShuffle %v4uint %23788 %23788 0 0 0 0
%7737 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %21961
OpStore %7737 %17379
%11457 = OpIAdd %uint %21961 %uint_1
%18021 = OpShiftLeftLogical %uint %9696 %uint_0
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%20061 = OpUMod %uint %18363 %13884
%19460 = OpShiftRightLogical %uint %20061 %uint_2
%14952 = OpVectorShuffle %v4uint %23788 %23788 0 0 0 0
%7737 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %19460
OpStore %7737 %14952
%11457 = OpIAdd %uint %19460 %uint_1
%25174 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11457
OpStore %25174 %17379
OpStore %25174 %14952
OpBranch %19578
%19578 = OpLabel
OpReturn
@ -207,19 +209,19 @@ const uint32_t resolve_clear_32bpp_cs[] = {
0x00000718, 0x00000A0D, 0x00000A0A, 0x0004002B, 0x0000000B, 0x00000AFA,
0x00000050, 0x0004002B, 0x0000000B, 0x00000A3A, 0x00000010, 0x0005002C,
0x00000011, 0x00000A9F, 0x00000AFA, 0x00000A3A, 0x00040015, 0x0000000C,
0x00000020, 0x00000001, 0x0005001E, 0x000003F6, 0x00000011, 0x0000000B,
0x0000000B, 0x00040020, 0x00000673, 0x00000009, 0x000003F6, 0x0004003B,
0x00000673, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0E,
0x00000001, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000C, 0x00000A11, 0x00000002, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x0004002B, 0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B,
0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B, 0x0000000B, 0x00000A13,
0x00000003, 0x0004002B, 0x0000000B, 0x00000AFE, 0x00001000, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000AFB,
0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A16, 0x00000004, 0x0005002C,
0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011,
0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B, 0x00000A19,
0x00000005, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x00040020,
0x00000020, 0x00000001, 0x0004002B, 0x0000000B, 0x00000A84, 0x00000800,
0x0005001E, 0x000003F6, 0x00000011, 0x0000000B, 0x0000000B, 0x00040020,
0x00000673, 0x00000009, 0x000003F6, 0x0004003B, 0x00000673, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000C, 0x00000A11,
0x00000002, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000A13, 0x00000003, 0x0004002B,
0x0000000B, 0x00000AFE, 0x00001000, 0x0004002B, 0x0000000B, 0x00000A31,
0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B,
0x0000000B, 0x00000A16, 0x00000004, 0x0005002C, 0x00000011, 0x0000073F,
0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011, 0x00000740, 0x00000A16,
0x00000A0D, 0x0004002B, 0x0000000B, 0x00000A19, 0x00000005, 0x00040020,
0x0000028E, 0x00000009, 0x00000011, 0x00040017, 0x00000014, 0x0000000B,
0x00000003, 0x00040020, 0x00000291, 0x00000001, 0x00000014, 0x0004003B,
0x00000291, 0x00000F48, 0x00000001, 0x00040020, 0x00000289, 0x00000001,
@ -241,7 +243,7 @@ const uint32_t resolve_clear_32bpp_cs[] = {
0x00000A13, 0x000500C7, 0x0000000B, 0x000059EF, 0x00003D0B, 0x00000AFE,
0x000500AB, 0x00000009, 0x0000500F, 0x000059EF, 0x00000A0A, 0x000500C2,
0x0000000B, 0x00001FCD, 0x00003D0B, 0x00000A31, 0x000500C7, 0x0000000B,
0x0000619E, 0x00001FCD, 0x00000AFB, 0x00050050, 0x00000011, 0x0000226E,
0x0000619E, 0x00001FCD, 0x00000A81, 0x00050050, 0x00000011, 0x0000226E,
0x00005158, 0x00005158, 0x000500C2, 0x00000011, 0x00002289, 0x0000226E,
0x0000073F, 0x000500C4, 0x00000011, 0x000057EB, 0x00000724, 0x00000740,
0x00050082, 0x00000011, 0x000048B0, 0x000057EB, 0x00000724, 0x000500C7,
@ -282,17 +284,17 @@ const uint32_t resolve_clear_32bpp_cs[] = {
0x00004259, 0x00003985, 0x00000000, 0x000500C2, 0x0000000B, 0x000033FB,
0x00004259, 0x00000A0D, 0x00050051, 0x0000000B, 0x000056BF, 0x000037C7,
0x00000000, 0x0004007C, 0x0000000C, 0x00003B5D, 0x000056BF, 0x000500AE,
0x00000009, 0x00003D78, 0x000056BF, 0x000033FB, 0x000300F7, 0x000052F5,
0x00000000, 0x000400FA, 0x00003D78, 0x000056D4, 0x00001F04, 0x000200F8,
0x000056D4, 0x0004007C, 0x0000000C, 0x00005988, 0x000033FB, 0x0004007E,
0x0000000C, 0x0000432F, 0x00005988, 0x000200F9, 0x000052F5, 0x000200F8,
0x00001F04, 0x0004007C, 0x0000000C, 0x00004112, 0x000033FB, 0x000200F9,
0x000052F5, 0x000200F8, 0x000052F5, 0x000700F5, 0x0000000C, 0x0000273E,
0x0000432F, 0x000056D4, 0x00004112, 0x00001F04, 0x00050080, 0x0000000C,
0x00000009, 0x00003D78, 0x000056BF, 0x000033FB, 0x000300F7, 0x00005942,
0x00000000, 0x000400FA, 0x00003D78, 0x00005A15, 0x00005FF5, 0x000200F8,
0x00005FF5, 0x0004007C, 0x0000000C, 0x000050D5, 0x000033FB, 0x000200F9,
0x00005942, 0x000200F8, 0x00005A15, 0x0004007C, 0x0000000C, 0x000049C5,
0x000033FB, 0x0004007E, 0x0000000C, 0x0000432F, 0x000049C5, 0x000200F9,
0x00005942, 0x000200F8, 0x00005942, 0x000700F5, 0x0000000C, 0x0000273E,
0x0000432F, 0x00005A15, 0x000050D5, 0x00005FF5, 0x00050080, 0x0000000C,
0x00002ECF, 0x00003B5D, 0x0000273E, 0x0004007C, 0x0000000B, 0x0000452D,
0x00002ECF, 0x00060052, 0x00000011, 0x00005446, 0x0000452D, 0x000037C7,
0x00000000, 0x000200F9, 0x00004944, 0x000200F8, 0x00004944, 0x000700F5,
0x00000011, 0x000043D0, 0x000037C7, 0x00004427, 0x00005446, 0x000052F5,
0x00000011, 0x000043D0, 0x000037C7, 0x00004427, 0x00005446, 0x00005942,
0x00050051, 0x0000000B, 0x00005DD7, 0x00005299, 0x00000000, 0x00050051,
0x0000000B, 0x0000571F, 0x00005299, 0x00000001, 0x00050084, 0x0000000B,
0x00003372, 0x00005DD7, 0x0000571F, 0x00050084, 0x0000000B, 0x000038D7,
@ -300,14 +302,15 @@ const uint32_t resolve_clear_32bpp_cs[] = {
0x00000001, 0x00050051, 0x0000000B, 0x00005BE6, 0x00003985, 0x00000000,
0x00050084, 0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6, 0x00050051,
0x0000000B, 0x00001AE6, 0x000043D0, 0x00000000, 0x00050080, 0x0000000B,
0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B, 0x00004AFF,
0x000025E0, 0x00000A0A, 0x00050080, 0x0000000B, 0x00001987, 0x000038D7,
0x00004AFF, 0x000500C2, 0x0000000B, 0x000055C9, 0x00001987, 0x00000A10,
0x0009004F, 0x00000017, 0x000043E3, 0x00005CEC, 0x00005CEC, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00060041, 0x00000294, 0x00001E39,
0x00000CC7, 0x00000A0B, 0x000055C9, 0x0003003E, 0x00001E39, 0x000043E3,
0x00050080, 0x0000000B, 0x00002CC1, 0x000055C9, 0x00000A0D, 0x00060041,
0x00000294, 0x00006256, 0x00000CC7, 0x00000A0B, 0x00002CC1, 0x0003003E,
0x00006256, 0x000043E3, 0x000200F9, 0x00004C7A, 0x000200F8, 0x00004C7A,
0x000100FD, 0x00010038,
0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B, 0x00004665,
0x000025E0, 0x00000A0A, 0x00050080, 0x0000000B, 0x000047BB, 0x000038D7,
0x00004665, 0x00050084, 0x0000000B, 0x0000363C, 0x00003372, 0x00000A84,
0x00050089, 0x0000000B, 0x00004E5D, 0x000047BB, 0x0000363C, 0x000500C2,
0x0000000B, 0x00004C04, 0x00004E5D, 0x00000A10, 0x0009004F, 0x00000017,
0x00003A68, 0x00005CEC, 0x00005CEC, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00060041, 0x00000294, 0x00001E39, 0x00000CC7, 0x00000A0B,
0x00004C04, 0x0003003E, 0x00001E39, 0x00003A68, 0x00050080, 0x0000000B,
0x00002CC1, 0x00004C04, 0x00000A0D, 0x00060041, 0x00000294, 0x00006256,
0x00000CC7, 0x00000A0B, 0x00002CC1, 0x0003003E, 0x00006256, 0x00003A68,
0x000200F9, 0x00004C7A, 0x000200F8, 0x00004C7A, 0x000100FD, 0x00010038,
};

View File

@ -39,6 +39,7 @@
%uint_16 = OpConstant %uint 16
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%int = OpTypeInt 32 1
%uint_2048 = OpConstant %uint 2048
%_struct_1014 = OpTypeStruct %v2uint %uint %uint
%_ptr_PushConstant__struct_1014 = OpTypePointer PushConstant %_struct_1014
%4495 = OpVariable %_ptr_PushConstant__struct_1014 PushConstant
@ -51,7 +52,7 @@
%uint_3 = OpConstant %uint 3
%uint_4096 = OpConstant %uint 4096
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_2047 = OpConstant %uint 2047
%uint_19 = OpConstant %uint 19
%2179 = OpConstantComposite %v2uint %uint_16 %uint_19
%uint_7 = OpConstant %uint 7
@ -59,7 +60,6 @@
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_5 = OpConstant %uint 5
%uint_2047 = OpConstant %uint 2047
%_ptr_PushConstant_v2uint = OpTypePointer PushConstant %v2uint
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
@ -91,7 +91,7 @@
%23023 = OpBitwiseAnd %uint %15627 %uint_4096
%20495 = OpINotEqual %bool %23023 %uint_0
%8141 = OpShiftRightLogical %uint %15627 %uint_13
%24990 = OpBitwiseAnd %uint %8141 %uint_4095
%24990 = OpBitwiseAnd %uint %8141 %uint_2047
%8871 = OpCompositeConstruct %v2uint %20824 %20824
%9538 = OpShiftRightLogical %v2uint %8871 %2179
%24941 = OpBitwiseAnd %v2uint %9538 %1954
@ -149,23 +149,23 @@
%22207 = OpCompositeExtract %uint %14279 0
%15197 = OpBitcast %int %22207
%15736 = OpUGreaterThanEqual %bool %22207 %13307
OpSelectionMerge %21237 None
OpBranchConditional %15736 %22228 %7940
%22228 = OpLabel
%22920 = OpBitcast %int %13307
%17199 = OpSNegate %int %22920
OpBranch %21237
%7940 = OpLabel
%16658 = OpBitcast %int %13307
OpBranch %21237
%21237 = OpLabel
%10046 = OpPhi %int %17199 %22228 %16658 %7940
OpSelectionMerge %22850 None
OpBranchConditional %15736 %23061 %24565
%24565 = OpLabel
%20693 = OpBitcast %int %13307
OpBranch %22850
%23061 = OpLabel
%18885 = OpBitcast %int %13307
%17199 = OpSNegate %int %18885
OpBranch %22850
%22850 = OpLabel
%10046 = OpPhi %int %17199 %23061 %20693 %24565
%11983 = OpIAdd %int %15197 %10046
%17709 = OpBitcast %uint %11983
%21574 = OpCompositeInsert %v2uint %17709 %14279 0
OpBranch %18756
%18756 = OpLabel
%17360 = OpPhi %v2uint %14279 %17447 %21574 %21237
%17360 = OpPhi %v2uint %14279 %17447 %21574 %22850
%24023 = OpCompositeExtract %uint %21145 0
%22303 = OpCompositeExtract %uint %21145 1
%13170 = OpIMul %uint %24023 %22303
@ -175,15 +175,17 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %17360 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_0
%6535 = OpIAdd %uint %14551 %19199
%21961 = OpShiftRightLogical %uint %6535 %uint_2
%17379 = OpVectorShuffle %v4uint %18180 %18180 0 0 0 0
%7737 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %21961
OpStore %7737 %17379
%11457 = OpIAdd %uint %21961 %uint_1
%18021 = OpShiftLeftLogical %uint %9696 %uint_0
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%20061 = OpUMod %uint %18363 %13884
%19460 = OpShiftRightLogical %uint %20061 %uint_2
%14952 = OpVectorShuffle %v4uint %18180 %18180 0 0 0 0
%7737 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %19460
OpStore %7737 %14952
%11457 = OpIAdd %uint %19460 %uint_1
%25174 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11457
OpStore %25174 %17379
OpStore %25174 %14952
OpBranch %19578
%19578 = OpLabel
OpReturn
@ -215,21 +217,21 @@ const uint32_t resolve_clear_32bpp_scaled_cs[] = {
0x00000718, 0x00000A0D, 0x00000A0A, 0x0004002B, 0x0000000B, 0x00000AFA,
0x00000050, 0x0004002B, 0x0000000B, 0x00000A3A, 0x00000010, 0x0005002C,
0x00000011, 0x00000A9F, 0x00000AFA, 0x00000A3A, 0x00040015, 0x0000000C,
0x00000020, 0x00000001, 0x0005001E, 0x000003F6, 0x00000011, 0x0000000B,
0x0000000B, 0x00040020, 0x00000673, 0x00000009, 0x000003F6, 0x0004003B,
0x00000673, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0E,
0x00000001, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000C, 0x00000A11, 0x00000002, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x0004002B, 0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B,
0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B, 0x0000000B, 0x00000A13,
0x00000003, 0x0004002B, 0x0000000B, 0x00000AFE, 0x00001000, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000AFB,
0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A43, 0x00000013, 0x0005002C,
0x00000011, 0x00000883, 0x00000A3A, 0x00000A43, 0x0004002B, 0x0000000B,
0x00000A1F, 0x00000007, 0x0004002B, 0x0000000B, 0x00000A16, 0x00000004,
0x0005002C, 0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C,
0x00000011, 0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B,
0x00000A19, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF,
0x00000020, 0x00000001, 0x0004002B, 0x0000000B, 0x00000A84, 0x00000800,
0x0005001E, 0x000003F6, 0x00000011, 0x0000000B, 0x0000000B, 0x00040020,
0x00000673, 0x00000009, 0x000003F6, 0x0004003B, 0x00000673, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000C, 0x00000A11,
0x00000002, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000A13, 0x00000003, 0x0004002B,
0x0000000B, 0x00000AFE, 0x00001000, 0x0004002B, 0x0000000B, 0x00000A31,
0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B,
0x0000000B, 0x00000A43, 0x00000013, 0x0005002C, 0x00000011, 0x00000883,
0x00000A3A, 0x00000A43, 0x0004002B, 0x0000000B, 0x00000A1F, 0x00000007,
0x0004002B, 0x0000000B, 0x00000A16, 0x00000004, 0x0005002C, 0x00000011,
0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011, 0x00000740,
0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B, 0x00000A19, 0x00000005,
0x00040020, 0x0000028E, 0x00000009, 0x00000011, 0x00040017, 0x00000014,
0x0000000B, 0x00000003, 0x00040020, 0x00000291, 0x00000001, 0x00000014,
0x0004003B, 0x00000291, 0x00000F48, 0x00000001, 0x00040020, 0x00000289,
@ -252,7 +254,7 @@ const uint32_t resolve_clear_32bpp_scaled_cs[] = {
0x00000A13, 0x000500C7, 0x0000000B, 0x000059EF, 0x00003D0B, 0x00000AFE,
0x000500AB, 0x00000009, 0x0000500F, 0x000059EF, 0x00000A0A, 0x000500C2,
0x0000000B, 0x00001FCD, 0x00003D0B, 0x00000A31, 0x000500C7, 0x0000000B,
0x0000619E, 0x00001FCD, 0x00000AFB, 0x00050050, 0x00000011, 0x000022A7,
0x0000619E, 0x00001FCD, 0x00000A81, 0x00050050, 0x00000011, 0x000022A7,
0x00005158, 0x00005158, 0x000500C2, 0x00000011, 0x00002542, 0x000022A7,
0x00000883, 0x000500C7, 0x00000011, 0x0000616D, 0x00002542, 0x000007A2,
0x000500C2, 0x00000011, 0x00004F51, 0x000022A7, 0x0000073F, 0x000500C4,
@ -297,17 +299,17 @@ const uint32_t resolve_clear_32bpp_scaled_cs[] = {
0x0000000B, 0x000033FB, 0x00004259, 0x00000A0D, 0x00050051, 0x0000000B,
0x000056BF, 0x000037C7, 0x00000000, 0x0004007C, 0x0000000C, 0x00003B5D,
0x000056BF, 0x000500AE, 0x00000009, 0x00003D78, 0x000056BF, 0x000033FB,
0x000300F7, 0x000052F5, 0x00000000, 0x000400FA, 0x00003D78, 0x000056D4,
0x00001F04, 0x000200F8, 0x000056D4, 0x0004007C, 0x0000000C, 0x00005988,
0x000033FB, 0x0004007E, 0x0000000C, 0x0000432F, 0x00005988, 0x000200F9,
0x000052F5, 0x000200F8, 0x00001F04, 0x0004007C, 0x0000000C, 0x00004112,
0x000033FB, 0x000200F9, 0x000052F5, 0x000200F8, 0x000052F5, 0x000700F5,
0x0000000C, 0x0000273E, 0x0000432F, 0x000056D4, 0x00004112, 0x00001F04,
0x000300F7, 0x00005942, 0x00000000, 0x000400FA, 0x00003D78, 0x00005A15,
0x00005FF5, 0x000200F8, 0x00005FF5, 0x0004007C, 0x0000000C, 0x000050D5,
0x000033FB, 0x000200F9, 0x00005942, 0x000200F8, 0x00005A15, 0x0004007C,
0x0000000C, 0x000049C5, 0x000033FB, 0x0004007E, 0x0000000C, 0x0000432F,
0x000049C5, 0x000200F9, 0x00005942, 0x000200F8, 0x00005942, 0x000700F5,
0x0000000C, 0x0000273E, 0x0000432F, 0x00005A15, 0x000050D5, 0x00005FF5,
0x00050080, 0x0000000C, 0x00002ECF, 0x00003B5D, 0x0000273E, 0x0004007C,
0x0000000B, 0x0000452D, 0x00002ECF, 0x00060052, 0x00000011, 0x00005446,
0x0000452D, 0x000037C7, 0x00000000, 0x000200F9, 0x00004944, 0x000200F8,
0x00004944, 0x000700F5, 0x00000011, 0x000043D0, 0x000037C7, 0x00004427,
0x00005446, 0x000052F5, 0x00050051, 0x0000000B, 0x00005DD7, 0x00005299,
0x00005446, 0x00005942, 0x00050051, 0x0000000B, 0x00005DD7, 0x00005299,
0x00000000, 0x00050051, 0x0000000B, 0x0000571F, 0x00005299, 0x00000001,
0x00050084, 0x0000000B, 0x00003372, 0x00005DD7, 0x0000571F, 0x00050084,
0x0000000B, 0x000038D7, 0x00002226, 0x00003372, 0x00050051, 0x0000000B,
@ -315,13 +317,15 @@ const uint32_t resolve_clear_32bpp_scaled_cs[] = {
0x00003985, 0x00000000, 0x00050084, 0x0000000B, 0x00005966, 0x00001A95,
0x00005BE6, 0x00050051, 0x0000000B, 0x00001AE6, 0x000043D0, 0x00000000,
0x00050080, 0x0000000B, 0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4,
0x0000000B, 0x00004AFF, 0x000025E0, 0x00000A0A, 0x00050080, 0x0000000B,
0x00001987, 0x000038D7, 0x00004AFF, 0x000500C2, 0x0000000B, 0x000055C9,
0x00001987, 0x00000A10, 0x0009004F, 0x00000017, 0x000043E3, 0x00004704,
0x00004704, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00060041,
0x00000294, 0x00001E39, 0x00000CC7, 0x00000A0B, 0x000055C9, 0x0003003E,
0x00001E39, 0x000043E3, 0x00050080, 0x0000000B, 0x00002CC1, 0x000055C9,
0x00000A0D, 0x00060041, 0x00000294, 0x00006256, 0x00000CC7, 0x00000A0B,
0x00002CC1, 0x0003003E, 0x00006256, 0x000043E3, 0x000200F9, 0x00004C7A,
0x000200F8, 0x00004C7A, 0x000100FD, 0x00010038,
0x0000000B, 0x00004665, 0x000025E0, 0x00000A0A, 0x00050080, 0x0000000B,
0x000047BB, 0x000038D7, 0x00004665, 0x00050084, 0x0000000B, 0x0000363C,
0x00003372, 0x00000A84, 0x00050089, 0x0000000B, 0x00004E5D, 0x000047BB,
0x0000363C, 0x000500C2, 0x0000000B, 0x00004C04, 0x00004E5D, 0x00000A10,
0x0009004F, 0x00000017, 0x00003A68, 0x00004704, 0x00004704, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00060041, 0x00000294, 0x00001E39,
0x00000CC7, 0x00000A0B, 0x00004C04, 0x0003003E, 0x00001E39, 0x00003A68,
0x00050080, 0x0000000B, 0x00002CC1, 0x00004C04, 0x00000A0D, 0x00060041,
0x00000294, 0x00006256, 0x00000CC7, 0x00000A0B, 0x00002CC1, 0x0003003E,
0x00006256, 0x00003A68, 0x000200F9, 0x00004C7A, 0x000200F8, 0x00004C7A,
0x000100FD, 0x00010038,
};

View File

@ -39,6 +39,7 @@
%uint_16 = OpConstant %uint 16
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%int = OpTypeInt 32 1
%uint_2048 = OpConstant %uint 2048
%_struct_1014 = OpTypeStruct %v2uint %uint %uint
%_ptr_PushConstant__struct_1014 = OpTypePointer PushConstant %_struct_1014
%4495 = OpVariable %_ptr_PushConstant__struct_1014 PushConstant
@ -50,12 +51,11 @@
%uint_10 = OpConstant %uint 10
%uint_3 = OpConstant %uint 3
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_2047 = OpConstant %uint 2047
%uint_4 = OpConstant %uint 4
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_5 = OpConstant %uint 5
%uint_2047 = OpConstant %uint 2047
%_ptr_PushConstant_v2uint = OpTypePointer PushConstant %v2uint
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
@ -84,7 +84,7 @@
%19978 = OpShiftRightLogical %uint %15627 %uint_10
%8574 = OpBitwiseAnd %uint %19978 %uint_3
%18836 = OpShiftRightLogical %uint %15627 %uint_13
%9130 = OpBitwiseAnd %uint %18836 %uint_4095
%9130 = OpBitwiseAnd %uint %18836 %uint_2047
%8814 = OpCompositeConstruct %v2uint %20824 %20824
%8841 = OpShiftRightLogical %v2uint %8814 %1855
%22507 = OpShiftLeftLogical %v2uint %1828 %1856
@ -139,21 +139,23 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %20715 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_1
%6535 = OpIAdd %uint %14551 %19199
%21961 = OpShiftRightLogical %uint %6535 %uint_2
%17379 = OpVectorShuffle %v4uint %23788 %23788 0 1 0 1
%7737 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %21961
OpStore %7737 %17379
%11457 = OpIAdd %uint %21961 %uint_1
%18021 = OpShiftLeftLogical %uint %9696 %uint_1
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%20061 = OpUMod %uint %18363 %13884
%19460 = OpShiftRightLogical %uint %20061 %uint_2
%14952 = OpVectorShuffle %v4uint %23788 %23788 0 1 0 1
%7737 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %19460
OpStore %7737 %14952
%11457 = OpIAdd %uint %19460 %uint_1
%22875 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11457
OpStore %22875 %17379
%11458 = OpIAdd %uint %21961 %uint_2
OpStore %22875 %14952
%11458 = OpIAdd %uint %19460 %uint_2
%22876 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11458
OpStore %22876 %17379
%11459 = OpIAdd %uint %21961 %uint_3
OpStore %22876 %14952
%11459 = OpIAdd %uint %19460 %uint_3
%25174 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11459
OpStore %25174 %17379
OpStore %25174 %14952
OpBranch %19578
%19578 = OpLabel
OpReturn
@ -185,19 +187,19 @@ const uint32_t resolve_clear_64bpp_cs[] = {
0x00000718, 0x00000A0D, 0x00000A0A, 0x0004002B, 0x0000000B, 0x00000AFA,
0x00000050, 0x0004002B, 0x0000000B, 0x00000A3A, 0x00000010, 0x0005002C,
0x00000011, 0x00000A9F, 0x00000AFA, 0x00000A3A, 0x00040015, 0x0000000C,
0x00000020, 0x00000001, 0x0005001E, 0x000003F6, 0x00000011, 0x0000000B,
0x0000000B, 0x00040020, 0x00000673, 0x00000009, 0x000003F6, 0x0004003B,
0x00000673, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0E,
0x00000001, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000C, 0x00000A11, 0x00000002, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x0004002B, 0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B,
0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B, 0x0000000B, 0x00000A13,
0x00000003, 0x0004002B, 0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B,
0x0000000B, 0x00000AFB, 0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A16,
0x00000004, 0x0005002C, 0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16,
0x0005002C, 0x00000011, 0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B,
0x0000000B, 0x00000A19, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A81,
0x000007FF, 0x00040020, 0x0000028E, 0x00000009, 0x00000011, 0x00040017,
0x00000020, 0x00000001, 0x0004002B, 0x0000000B, 0x00000A84, 0x00000800,
0x0005001E, 0x000003F6, 0x00000011, 0x0000000B, 0x0000000B, 0x00040020,
0x00000673, 0x00000009, 0x000003F6, 0x0004003B, 0x00000673, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000C, 0x00000A11,
0x00000002, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000A13, 0x00000003, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81,
0x000007FF, 0x0004002B, 0x0000000B, 0x00000A16, 0x00000004, 0x0005002C,
0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011,
0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B, 0x00000A19,
0x00000005, 0x00040020, 0x0000028E, 0x00000009, 0x00000011, 0x00040017,
0x00000014, 0x0000000B, 0x00000003, 0x00040020, 0x00000291, 0x00000001,
0x00000014, 0x0004003B, 0x00000291, 0x00000F48, 0x00000001, 0x00040020,
0x00000289, 0x00000001, 0x0000000B, 0x0005002C, 0x00000011, 0x0000072A,
@ -217,7 +219,7 @@ const uint32_t resolve_clear_64bpp_cs[] = {
0x0000000B, 0x00004E0A, 0x00003D0B, 0x00000A28, 0x000500C7, 0x0000000B,
0x0000217E, 0x00004E0A, 0x00000A13, 0x000500C2, 0x0000000B, 0x00004994,
0x00003D0B, 0x00000A31, 0x000500C7, 0x0000000B, 0x000023AA, 0x00004994,
0x00000AFB, 0x00050050, 0x00000011, 0x0000226E, 0x00005158, 0x00005158,
0x00000A81, 0x00050050, 0x00000011, 0x0000226E, 0x00005158, 0x00005158,
0x000500C2, 0x00000011, 0x00002289, 0x0000226E, 0x0000073F, 0x000500C4,
0x00000011, 0x000057EB, 0x00000724, 0x00000740, 0x00050082, 0x00000011,
0x000048B0, 0x000057EB, 0x00000724, 0x000500C7, 0x00000011, 0x00004937,
@ -260,18 +262,20 @@ const uint32_t resolve_clear_64bpp_cs[] = {
0x00050051, 0x0000000B, 0x00005BE6, 0x00003985, 0x00000000, 0x00050084,
0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6, 0x00050051, 0x0000000B,
0x00001AE6, 0x000050EB, 0x00000000, 0x00050080, 0x0000000B, 0x000025E0,
0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B, 0x00004AFF, 0x000025E0,
0x00000A0D, 0x00050080, 0x0000000B, 0x00001987, 0x000038D7, 0x00004AFF,
0x000500C2, 0x0000000B, 0x000055C9, 0x00001987, 0x00000A10, 0x0009004F,
0x00000017, 0x000043E3, 0x00005CEC, 0x00005CEC, 0x00000000, 0x00000001,
0x00000000, 0x00000001, 0x00060041, 0x00000294, 0x00001E39, 0x00000CC7,
0x00000A0B, 0x000055C9, 0x0003003E, 0x00001E39, 0x000043E3, 0x00050080,
0x0000000B, 0x00002CC1, 0x000055C9, 0x00000A0D, 0x00060041, 0x00000294,
0x0000595B, 0x00000CC7, 0x00000A0B, 0x00002CC1, 0x0003003E, 0x0000595B,
0x000043E3, 0x00050080, 0x0000000B, 0x00002CC2, 0x000055C9, 0x00000A10,
0x00060041, 0x00000294, 0x0000595C, 0x00000CC7, 0x00000A0B, 0x00002CC2,
0x0003003E, 0x0000595C, 0x000043E3, 0x00050080, 0x0000000B, 0x00002CC3,
0x000055C9, 0x00000A13, 0x00060041, 0x00000294, 0x00006256, 0x00000CC7,
0x00000A0B, 0x00002CC3, 0x0003003E, 0x00006256, 0x000043E3, 0x000200F9,
0x00004C7A, 0x000200F8, 0x00004C7A, 0x000100FD, 0x00010038,
0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B, 0x00004665, 0x000025E0,
0x00000A0D, 0x00050080, 0x0000000B, 0x000047BB, 0x000038D7, 0x00004665,
0x00050084, 0x0000000B, 0x0000363C, 0x00003372, 0x00000A84, 0x00050089,
0x0000000B, 0x00004E5D, 0x000047BB, 0x0000363C, 0x000500C2, 0x0000000B,
0x00004C04, 0x00004E5D, 0x00000A10, 0x0009004F, 0x00000017, 0x00003A68,
0x00005CEC, 0x00005CEC, 0x00000000, 0x00000001, 0x00000000, 0x00000001,
0x00060041, 0x00000294, 0x00001E39, 0x00000CC7, 0x00000A0B, 0x00004C04,
0x0003003E, 0x00001E39, 0x00003A68, 0x00050080, 0x0000000B, 0x00002CC1,
0x00004C04, 0x00000A0D, 0x00060041, 0x00000294, 0x0000595B, 0x00000CC7,
0x00000A0B, 0x00002CC1, 0x0003003E, 0x0000595B, 0x00003A68, 0x00050080,
0x0000000B, 0x00002CC2, 0x00004C04, 0x00000A10, 0x00060041, 0x00000294,
0x0000595C, 0x00000CC7, 0x00000A0B, 0x00002CC2, 0x0003003E, 0x0000595C,
0x00003A68, 0x00050080, 0x0000000B, 0x00002CC3, 0x00004C04, 0x00000A13,
0x00060041, 0x00000294, 0x00006256, 0x00000CC7, 0x00000A0B, 0x00002CC3,
0x0003003E, 0x00006256, 0x00003A68, 0x000200F9, 0x00004C7A, 0x000200F8,
0x00004C7A, 0x000100FD, 0x00010038,
};

View File

@ -39,6 +39,7 @@
%uint_16 = OpConstant %uint 16
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%int = OpTypeInt 32 1
%uint_2048 = OpConstant %uint 2048
%_struct_1014 = OpTypeStruct %v2uint %uint %uint
%_ptr_PushConstant__struct_1014 = OpTypePointer PushConstant %_struct_1014
%4495 = OpVariable %_ptr_PushConstant__struct_1014 PushConstant
@ -50,7 +51,7 @@
%uint_10 = OpConstant %uint 10
%uint_3 = OpConstant %uint 3
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_2047 = OpConstant %uint 2047
%uint_19 = OpConstant %uint 19
%2179 = OpConstantComposite %v2uint %uint_16 %uint_19
%uint_7 = OpConstant %uint 7
@ -58,7 +59,6 @@
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_5 = OpConstant %uint 5
%uint_2047 = OpConstant %uint 2047
%_ptr_PushConstant_v2uint = OpTypePointer PushConstant %v2uint
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
@ -88,7 +88,7 @@
%19978 = OpShiftRightLogical %uint %15627 %uint_10
%8574 = OpBitwiseAnd %uint %19978 %uint_3
%18836 = OpShiftRightLogical %uint %15627 %uint_13
%9130 = OpBitwiseAnd %uint %18836 %uint_4095
%9130 = OpBitwiseAnd %uint %18836 %uint_2047
%8871 = OpCompositeConstruct %v2uint %20824 %20824
%9538 = OpShiftRightLogical %v2uint %8871 %2179
%24941 = OpBitwiseAnd %v2uint %9538 %1954
@ -147,21 +147,23 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %20715 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_1
%6535 = OpIAdd %uint %14551 %19199
%21961 = OpShiftRightLogical %uint %6535 %uint_2
%17379 = OpVectorShuffle %v4uint %18180 %18180 0 1 0 1
%7737 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %21961
OpStore %7737 %17379
%11457 = OpIAdd %uint %21961 %uint_1
%18021 = OpShiftLeftLogical %uint %9696 %uint_1
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%20061 = OpUMod %uint %18363 %13884
%19460 = OpShiftRightLogical %uint %20061 %uint_2
%14952 = OpVectorShuffle %v4uint %18180 %18180 0 1 0 1
%7737 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %19460
OpStore %7737 %14952
%11457 = OpIAdd %uint %19460 %uint_1
%22875 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11457
OpStore %22875 %17379
%11458 = OpIAdd %uint %21961 %uint_2
OpStore %22875 %14952
%11458 = OpIAdd %uint %19460 %uint_2
%22876 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11458
OpStore %22876 %17379
%11459 = OpIAdd %uint %21961 %uint_3
OpStore %22876 %14952
%11459 = OpIAdd %uint %19460 %uint_3
%25174 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11459
OpStore %25174 %17379
OpStore %25174 %14952
OpBranch %19578
%19578 = OpLabel
OpReturn
@ -193,21 +195,21 @@ const uint32_t resolve_clear_64bpp_scaled_cs[] = {
0x00000718, 0x00000A0D, 0x00000A0A, 0x0004002B, 0x0000000B, 0x00000AFA,
0x00000050, 0x0004002B, 0x0000000B, 0x00000A3A, 0x00000010, 0x0005002C,
0x00000011, 0x00000A9F, 0x00000AFA, 0x00000A3A, 0x00040015, 0x0000000C,
0x00000020, 0x00000001, 0x0005001E, 0x000003F6, 0x00000011, 0x0000000B,
0x0000000B, 0x00040020, 0x00000673, 0x00000009, 0x000003F6, 0x0004003B,
0x00000673, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0E,
0x00000001, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000C, 0x00000A11, 0x00000002, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x0004002B, 0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B,
0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B, 0x0000000B, 0x00000A13,
0x00000003, 0x0004002B, 0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B,
0x0000000B, 0x00000AFB, 0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A43,
0x00000013, 0x0005002C, 0x00000011, 0x00000883, 0x00000A3A, 0x00000A43,
0x0004002B, 0x0000000B, 0x00000A1F, 0x00000007, 0x0004002B, 0x0000000B,
0x00000A16, 0x00000004, 0x0005002C, 0x00000011, 0x0000073F, 0x00000A0A,
0x00000A16, 0x0005002C, 0x00000011, 0x00000740, 0x00000A16, 0x00000A0D,
0x0004002B, 0x0000000B, 0x00000A19, 0x00000005, 0x0004002B, 0x0000000B,
0x00000A81, 0x000007FF, 0x00040020, 0x0000028E, 0x00000009, 0x00000011,
0x00000020, 0x00000001, 0x0004002B, 0x0000000B, 0x00000A84, 0x00000800,
0x0005001E, 0x000003F6, 0x00000011, 0x0000000B, 0x0000000B, 0x00040020,
0x00000673, 0x00000009, 0x000003F6, 0x0004003B, 0x00000673, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000C, 0x00000A11,
0x00000002, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000A13, 0x00000003, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81,
0x000007FF, 0x0004002B, 0x0000000B, 0x00000A43, 0x00000013, 0x0005002C,
0x00000011, 0x00000883, 0x00000A3A, 0x00000A43, 0x0004002B, 0x0000000B,
0x00000A1F, 0x00000007, 0x0004002B, 0x0000000B, 0x00000A16, 0x00000004,
0x0005002C, 0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C,
0x00000011, 0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B,
0x00000A19, 0x00000005, 0x00040020, 0x0000028E, 0x00000009, 0x00000011,
0x00040017, 0x00000014, 0x0000000B, 0x00000003, 0x00040020, 0x00000291,
0x00000001, 0x00000014, 0x0004003B, 0x00000291, 0x00000F48, 0x00000001,
0x00040020, 0x00000289, 0x00000001, 0x0000000B, 0x0005002C, 0x00000011,
@ -228,7 +230,7 @@ const uint32_t resolve_clear_64bpp_scaled_cs[] = {
0x0000000B, 0x00004E0A, 0x00003D0B, 0x00000A28, 0x000500C7, 0x0000000B,
0x0000217E, 0x00004E0A, 0x00000A13, 0x000500C2, 0x0000000B, 0x00004994,
0x00003D0B, 0x00000A31, 0x000500C7, 0x0000000B, 0x000023AA, 0x00004994,
0x00000AFB, 0x00050050, 0x00000011, 0x000022A7, 0x00005158, 0x00005158,
0x00000A81, 0x00050050, 0x00000011, 0x000022A7, 0x00005158, 0x00005158,
0x000500C2, 0x00000011, 0x00002542, 0x000022A7, 0x00000883, 0x000500C7,
0x00000011, 0x0000616D, 0x00002542, 0x000007A2, 0x000500C2, 0x00000011,
0x00004F51, 0x000022A7, 0x0000073F, 0x000500C4, 0x00000011, 0x00006242,
@ -275,18 +277,19 @@ const uint32_t resolve_clear_64bpp_scaled_cs[] = {
0x00000000, 0x00050084, 0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6,
0x00050051, 0x0000000B, 0x00001AE6, 0x000050EB, 0x00000000, 0x00050080,
0x0000000B, 0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B,
0x00004AFF, 0x000025E0, 0x00000A0D, 0x00050080, 0x0000000B, 0x00001987,
0x000038D7, 0x00004AFF, 0x000500C2, 0x0000000B, 0x000055C9, 0x00001987,
0x00000A10, 0x0009004F, 0x00000017, 0x000043E3, 0x00004704, 0x00004704,
0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00060041, 0x00000294,
0x00001E39, 0x00000CC7, 0x00000A0B, 0x000055C9, 0x0003003E, 0x00001E39,
0x000043E3, 0x00050080, 0x0000000B, 0x00002CC1, 0x000055C9, 0x00000A0D,
0x00060041, 0x00000294, 0x0000595B, 0x00000CC7, 0x00000A0B, 0x00002CC1,
0x0003003E, 0x0000595B, 0x000043E3, 0x00050080, 0x0000000B, 0x00002CC2,
0x000055C9, 0x00000A10, 0x00060041, 0x00000294, 0x0000595C, 0x00000CC7,
0x00000A0B, 0x00002CC2, 0x0003003E, 0x0000595C, 0x000043E3, 0x00050080,
0x0000000B, 0x00002CC3, 0x000055C9, 0x00000A13, 0x00060041, 0x00000294,
0x00006256, 0x00000CC7, 0x00000A0B, 0x00002CC3, 0x0003003E, 0x00006256,
0x000043E3, 0x000200F9, 0x00004C7A, 0x000200F8, 0x00004C7A, 0x000100FD,
0x00010038,
0x00004665, 0x000025E0, 0x00000A0D, 0x00050080, 0x0000000B, 0x000047BB,
0x000038D7, 0x00004665, 0x00050084, 0x0000000B, 0x0000363C, 0x00003372,
0x00000A84, 0x00050089, 0x0000000B, 0x00004E5D, 0x000047BB, 0x0000363C,
0x000500C2, 0x0000000B, 0x00004C04, 0x00004E5D, 0x00000A10, 0x0009004F,
0x00000017, 0x00003A68, 0x00004704, 0x00004704, 0x00000000, 0x00000001,
0x00000000, 0x00000001, 0x00060041, 0x00000294, 0x00001E39, 0x00000CC7,
0x00000A0B, 0x00004C04, 0x0003003E, 0x00001E39, 0x00003A68, 0x00050080,
0x0000000B, 0x00002CC1, 0x00004C04, 0x00000A0D, 0x00060041, 0x00000294,
0x0000595B, 0x00000CC7, 0x00000A0B, 0x00002CC1, 0x0003003E, 0x0000595B,
0x00003A68, 0x00050080, 0x0000000B, 0x00002CC2, 0x00004C04, 0x00000A10,
0x00060041, 0x00000294, 0x0000595C, 0x00000CC7, 0x00000A0B, 0x00002CC2,
0x0003003E, 0x0000595C, 0x00003A68, 0x00050080, 0x0000000B, 0x00002CC3,
0x00004C04, 0x00000A13, 0x00060041, 0x00000294, 0x00006256, 0x00000CC7,
0x00000A0B, 0x00002CC3, 0x0003003E, 0x00006256, 0x00003A68, 0x000200F9,
0x00004C7A, 0x000200F8, 0x00004C7A, 0x000100FD, 0x00010038,
};

View File

@ -54,6 +54,7 @@
%1816 = OpConstantComposite %v2uint %uint_1 %uint_0
%uint_80 = OpConstant %uint 80
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%uint_2048 = OpConstant %uint 2048
%int_5 = OpConstant %int 5
%uint_5 = OpConstant %uint 5
%uint_7 = OpConstant %uint 7
@ -83,17 +84,15 @@
%uint_10 = OpConstant %uint 10
%uint_4096 = OpConstant %uint 4096
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_25 = OpConstant %uint 25
%uint_2047 = OpConstant %uint 2047
%uint_24 = OpConstant %uint 24
%uint_15 = OpConstant %uint 15
%uint_28 = OpConstant %uint 28
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_2047 = OpConstant %uint 2047
%uint_16777216 = OpConstant %uint 16777216
%uint_20 = OpConstant %uint 20
%uint_24 = OpConstant %uint 24
%2275 = OpConstantComposite %v2uint %uint_20 %uint_24
%uint_28 = OpConstant %uint 28
%v3uint = OpTypeVector %uint 3
%uint_255 = OpConstant %uint 255
%uint_3222273024 = OpConstant %uint 3222273024
@ -138,8 +137,8 @@
%23023 = OpBitwiseAnd %uint %15627 %uint_4096
%20495 = OpINotEqual %bool %23023 %uint_0
%10307 = OpShiftRightLogical %uint %15627 %uint_13
%24434 = OpBitwiseAnd %uint %10307 %uint_4095
%18836 = OpShiftRightLogical %uint %15627 %uint_25
%24434 = OpBitwiseAnd %uint %10307 %uint_2047
%18836 = OpShiftRightLogical %uint %15627 %uint_24
%9130 = OpBitwiseAnd %uint %18836 %uint_15
%8814 = OpCompositeConstruct %v2uint %20824 %20824
%8841 = OpShiftRightLogical %v2uint %8814 %1855
@ -254,12 +253,14 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %17360 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_0
%6269 = OpIAdd %uint %14551 %19199
%24307 = OpShiftRightLogical %uint %6269 %uint_2
%19601 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %24307
%12609 = OpLoad %v4uint %19601
%11687 = OpIAdd %uint %24307 %uint_1
%18021 = OpShiftLeftLogical %uint %9696 %uint_0
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%19795 = OpUMod %uint %18363 %13884
%21806 = OpShiftRightLogical %uint %19795 %uint_2
%17174 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %21806
%12609 = OpLoad %v4uint %17174
%11687 = OpIAdd %uint %21806 %uint_1
%7197 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11687
%18360 = OpLoad %v4uint %7197
%15472 = OpIEqual %bool %24498 %uint_0
@ -521,161 +522,162 @@ const uint32_t resolve_fast_32bpp_1x2xmsaa_cs[] = {
0x0000070F, 0x00000A0A, 0x00000A0A, 0x0005002C, 0x00000011, 0x00000724,
0x00000A0D, 0x00000A0D, 0x0005002C, 0x00000011, 0x00000718, 0x00000A0D,
0x00000A0A, 0x0004002B, 0x0000000B, 0x00000AFA, 0x00000050, 0x0005002C,
0x00000011, 0x00000A9F, 0x00000AFA, 0x00000A3A, 0x0004002B, 0x0000000C,
0x00000A1A, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A19, 0x00000005,
0x0004002B, 0x0000000B, 0x00000A1F, 0x00000007, 0x0004002B, 0x0000000C,
0x00000A20, 0x00000007, 0x0004002B, 0x0000000C, 0x00000A35, 0x0000000E,
0x0004002B, 0x0000000C, 0x00000A11, 0x00000002, 0x0004002B, 0x0000000C,
0x000009DB, 0xFFFFFFF0, 0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001,
0x0004002B, 0x0000000C, 0x00000A38, 0x0000000F, 0x0004002B, 0x0000000C,
0x00000A17, 0x00000004, 0x0004002B, 0x0000000C, 0x0000040B, 0xFFFFFE00,
0x0004002B, 0x0000000C, 0x00000A14, 0x00000003, 0x0004002B, 0x0000000C,
0x00000A3B, 0x00000010, 0x0004002B, 0x0000000C, 0x00000388, 0x000001C0,
0x0004002B, 0x0000000C, 0x00000A23, 0x00000008, 0x0004002B, 0x0000000C,
0x00000A1D, 0x00000006, 0x0004002B, 0x0000000C, 0x00000AC8, 0x0000003F,
0x0004002B, 0x0000000B, 0x00000A16, 0x00000004, 0x0004002B, 0x0000000C,
0x0000078B, 0x0FFFFFFF, 0x0004002B, 0x0000000C, 0x00000A05, 0xFFFFFFFE,
0x0007001E, 0x0000040C, 0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B,
0x0000000B, 0x00040020, 0x00000688, 0x00000009, 0x0000040C, 0x0004003B,
0x00000688, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000AFE, 0x00001000, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000AFB,
0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A55, 0x00000019, 0x0004002B,
0x0000000B, 0x00000A37, 0x0000000F, 0x0005002C, 0x00000011, 0x0000073F,
0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011, 0x00000740, 0x00000A16,
0x00000A0D, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B,
0x0000000B, 0x00000926, 0x01000000, 0x0004002B, 0x0000000B, 0x00000A46,
0x00000014, 0x0004002B, 0x0000000B, 0x00000A52, 0x00000018, 0x0005002C,
0x00000011, 0x000008E3, 0x00000A46, 0x00000A52, 0x0004002B, 0x0000000B,
0x00000A5E, 0x0000001C, 0x00040017, 0x00000014, 0x0000000B, 0x00000003,
0x0004002B, 0x0000000B, 0x00000144, 0x000000FF, 0x0004002B, 0x0000000B,
0x00000B54, 0xC00FFC00, 0x00040020, 0x00000291, 0x00000001, 0x00000014,
0x0004003B, 0x00000291, 0x00000F48, 0x00000001, 0x00040020, 0x00000289,
0x00000001, 0x0000000B, 0x0005002C, 0x00000011, 0x0000072A, 0x00000A13,
0x00000A0A, 0x0003001D, 0x000007DC, 0x00000017, 0x0003001E, 0x000007B4,
0x000007DC, 0x00040020, 0x00000A32, 0x00000002, 0x000007B4, 0x0004003B,
0x00000A32, 0x00000CC7, 0x00000002, 0x00040020, 0x00000294, 0x00000002,
0x00000017, 0x0003001D, 0x000007DD, 0x00000017, 0x0003001E, 0x000007B5,
0x000007DD, 0x00040020, 0x00000A33, 0x00000002, 0x000007B5, 0x0004003B,
0x00000A33, 0x00001592, 0x00000002, 0x0006002C, 0x00000014, 0x00000AC7,
0x00000A22, 0x00000A22, 0x00000A0D, 0x0005002C, 0x00000011, 0x0000074E,
0x00000A13, 0x00000A13, 0x0005002C, 0x00000011, 0x0000084A, 0x00000A37,
0x00000A37, 0x0007002C, 0x00000017, 0x0000072E, 0x000005FD, 0x000005FD,
0x000005FD, 0x000005FD, 0x0007002C, 0x00000017, 0x0000064B, 0x00000144,
0x00000144, 0x00000144, 0x00000144, 0x0007002C, 0x00000017, 0x000002ED,
0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00000A3A, 0x0007002C, 0x00000017,
0x00000930, 0x00000B54, 0x00000B54, 0x00000B54, 0x00000B54, 0x0007002C,
0x00000017, 0x000003A1, 0x00000A44, 0x00000A44, 0x00000A44, 0x00000A44,
0x0007002C, 0x00000017, 0x000003C5, 0x00000A46, 0x00000A46, 0x00000A46,
0x00000A46, 0x0004002B, 0x0000000B, 0x00000A25, 0x00000009, 0x0007002C,
0x00000017, 0x000009CE, 0x000008A6, 0x000008A6, 0x000008A6, 0x000008A6,
0x0007002C, 0x00000017, 0x0000013D, 0x00000A22, 0x00000A22, 0x00000A22,
0x00000A22, 0x0003002A, 0x00000009, 0x00000787, 0x00050036, 0x00000008,
0x0000161F, 0x00000000, 0x00000502, 0x000200F8, 0x00003B06, 0x000300F7,
0x00004C7A, 0x00000000, 0x000300FB, 0x00000A0A, 0x00002E68, 0x000200F8,
0x00002E68, 0x00050041, 0x00000288, 0x000056E5, 0x0000118F, 0x00000A0B,
0x0004003D, 0x0000000B, 0x00003D0B, 0x000056E5, 0x00050041, 0x00000288,
0x000058AC, 0x0000118F, 0x00000A0E, 0x0004003D, 0x0000000B, 0x00005158,
0x000058AC, 0x000500C7, 0x0000000B, 0x00005051, 0x00003D0B, 0x00000A44,
0x000500C2, 0x0000000B, 0x00004E69, 0x00003D0B, 0x00000A28, 0x000500C7,
0x0000000B, 0x00001C09, 0x00004E69, 0x00000A13, 0x000500C7, 0x0000000B,
0x000059EF, 0x00003D0B, 0x00000AFE, 0x000500AB, 0x00000009, 0x0000500F,
0x000059EF, 0x00000A0A, 0x000500C2, 0x0000000B, 0x00002843, 0x00003D0B,
0x00000A31, 0x000500C7, 0x0000000B, 0x00005F72, 0x00002843, 0x00000AFB,
0x000500C2, 0x0000000B, 0x00004994, 0x00003D0B, 0x00000A55, 0x000500C7,
0x0000000B, 0x000023AA, 0x00004994, 0x00000A37, 0x00050050, 0x00000011,
0x0000226E, 0x00005158, 0x00005158, 0x000500C2, 0x00000011, 0x00002289,
0x0000226E, 0x0000073F, 0x000500C4, 0x00000011, 0x000057EB, 0x00000724,
0x00000740, 0x00050082, 0x00000011, 0x000048B0, 0x000057EB, 0x00000724,
0x000500C7, 0x00000011, 0x00004937, 0x00002289, 0x000048B0, 0x000500C4,
0x00000011, 0x00005784, 0x00004937, 0x0000074E, 0x00050084, 0x00000011,
0x000059EB, 0x00005784, 0x00000724, 0x000500C2, 0x0000000B, 0x00003213,
0x00005158, 0x00000A19, 0x000500C7, 0x0000000B, 0x00003F4C, 0x00003213,
0x00000A81, 0x00050041, 0x00000288, 0x0000492C, 0x0000118F, 0x00000A11,
0x0004003D, 0x0000000B, 0x00005EAC, 0x0000492C, 0x00050041, 0x00000288,
0x000058AD, 0x0000118F, 0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7,
0x000058AD, 0x000500C7, 0x0000000B, 0x00004ADC, 0x00005EAC, 0x00000A1F,
0x000500C7, 0x0000000B, 0x000055EF, 0x00005EAC, 0x00000A22, 0x000500AB,
0x00000009, 0x00005010, 0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B,
0x000028A2, 0x00005EAC, 0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD,
0x000028A2, 0x00000A1F, 0x000500C7, 0x0000000B, 0x00005A4E, 0x00005EAC,
0x00000926, 0x000500AB, 0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A,
0x000500C7, 0x0000000B, 0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4,
0x0000000B, 0x00003DA7, 0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B,
0x0000583F, 0x000051B7, 0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE,
0x0000583F, 0x00000A44, 0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE,
0x00000A19, 0x00050050, 0x00000011, 0x000028B6, 0x000051B7, 0x000051B7,
0x000500C2, 0x00000011, 0x00002891, 0x000028B6, 0x000008E3, 0x000500C7,
0x00000011, 0x00005B53, 0x00002891, 0x0000084A, 0x000500C4, 0x00000011,
0x00003F4F, 0x00005B53, 0x0000074E, 0x00050084, 0x00000011, 0x000059EC,
0x00003F4F, 0x00000724, 0x000500C2, 0x0000000B, 0x00003214, 0x000051B7,
0x00000A5E, 0x000500C7, 0x0000000B, 0x00003F4D, 0x00003214, 0x00000A1F,
0x00050041, 0x00000288, 0x0000492D, 0x0000118F, 0x00000A17, 0x0004003D,
0x0000000B, 0x00005EAD, 0x0000492D, 0x00050041, 0x00000289, 0x000056D1,
0x00000F48, 0x00000A0A, 0x0004003D, 0x0000000B, 0x00001BAD, 0x000056D1,
0x000500AE, 0x00000009, 0x00001CED, 0x00001BAD, 0x00003F4C, 0x000300F7,
0x00004427, 0x00000002, 0x000400FA, 0x00001CED, 0x000055E8, 0x00004427,
0x000200F8, 0x000055E8, 0x000200F9, 0x00004C7A, 0x000200F8, 0x00004427,
0x0004003D, 0x00000014, 0x0000392D, 0x00000F48, 0x0007004F, 0x00000011,
0x00004849, 0x0000392D, 0x0000392D, 0x00000000, 0x00000001, 0x000500C4,
0x00000011, 0x00002670, 0x00004849, 0x0000072A, 0x00050051, 0x0000000B,
0x00005FB2, 0x00002670, 0x00000000, 0x00050051, 0x0000000B, 0x00001BEE,
0x00002670, 0x00000001, 0x0007000C, 0x0000000B, 0x00005F7E, 0x00000001,
0x00000029, 0x00001BEE, 0x00000A0A, 0x00050050, 0x00000011, 0x000051EF,
0x00005FB2, 0x00005F7E, 0x00050080, 0x00000011, 0x0000522C, 0x000051EF,
0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB, 0x00003F4D, 0x00000A13,
0x000300F7, 0x00005CE0, 0x00000000, 0x000400FA, 0x00003ECB, 0x00002AEE,
0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA, 0x00000009, 0x000034FE,
0x00003F4D, 0x00000A19, 0x000600A9, 0x0000000B, 0x000020F6, 0x000034FE,
0x00000A10, 0x00000A0A, 0x000200F9, 0x00005CE0, 0x000200F8, 0x00002AEE,
0x000200F9, 0x00005CE0, 0x000200F8, 0x00005CE0, 0x000700F5, 0x0000000B,
0x00004B64, 0x00003F4D, 0x00002AEE, 0x000020F6, 0x00003AEF, 0x00050050,
0x00000011, 0x000041BE, 0x00001C09, 0x00001C09, 0x000500AE, 0x0000000F,
0x00002E19, 0x000041BE, 0x0000072D, 0x000600A9, 0x00000011, 0x00004BB5,
0x00002E19, 0x00000724, 0x0000070F, 0x000500C4, 0x00000011, 0x00002AEA,
0x0000522C, 0x00004BB5, 0x00050050, 0x00000011, 0x0000605D, 0x00004B64,
0x00004B64, 0x000500C2, 0x00000011, 0x00002385, 0x0000605D, 0x00000718,
0x000500C7, 0x00000011, 0x00003EC8, 0x00002385, 0x00000724, 0x00050080,
0x00000011, 0x00004F30, 0x00002AEA, 0x00003EC8, 0x00050084, 0x00000011,
0x00005299, 0x00000A9F, 0x00000724, 0x000500C2, 0x00000011, 0x00003985,
0x00005299, 0x0000070F, 0x00050086, 0x00000011, 0x00004D57, 0x00004F30,
0x00003985, 0x00050051, 0x0000000B, 0x00004FA6, 0x00004D57, 0x00000001,
0x00050084, 0x0000000B, 0x00002B26, 0x00004FA6, 0x00005051, 0x00050051,
0x0000000B, 0x00006059, 0x00004D57, 0x00000000, 0x00050080, 0x0000000B,
0x00005420, 0x00002B26, 0x00006059, 0x00050080, 0x0000000B, 0x00002226,
0x00005F72, 0x00005420, 0x00050084, 0x00000011, 0x0000193B, 0x00004D57,
0x00003985, 0x00050082, 0x00000011, 0x000037C7, 0x00004F30, 0x0000193B,
0x000300F7, 0x00004944, 0x00000000, 0x000400FA, 0x0000500F, 0x00002E70,
0x00004944, 0x000200F8, 0x00002E70, 0x00050051, 0x0000000B, 0x00004259,
0x00003985, 0x00000000, 0x000500C2, 0x0000000B, 0x000033FB, 0x00004259,
0x00000A0D, 0x00050051, 0x0000000B, 0x000056BF, 0x000037C7, 0x00000000,
0x0004007C, 0x0000000C, 0x00003B5D, 0x000056BF, 0x000500AE, 0x00000009,
0x00003D78, 0x000056BF, 0x000033FB, 0x000300F7, 0x00005942, 0x00000000,
0x000400FA, 0x00003D78, 0x00005A15, 0x00005FF5, 0x000200F8, 0x00005FF5,
0x0004007C, 0x0000000C, 0x000050D5, 0x000033FB, 0x000200F9, 0x00005942,
0x000200F8, 0x00005A15, 0x0004007C, 0x0000000C, 0x000049C5, 0x000033FB,
0x0004007E, 0x0000000C, 0x0000432F, 0x000049C5, 0x000200F9, 0x00005942,
0x000200F8, 0x00005942, 0x000700F5, 0x0000000C, 0x0000273E, 0x0000432F,
0x00005A15, 0x000050D5, 0x00005FF5, 0x00050080, 0x0000000C, 0x00002ECF,
0x00003B5D, 0x0000273E, 0x0004007C, 0x0000000B, 0x0000452D, 0x00002ECF,
0x00060052, 0x00000011, 0x00005446, 0x0000452D, 0x000037C7, 0x00000000,
0x000200F9, 0x00004944, 0x000200F8, 0x00004944, 0x000700F5, 0x00000011,
0x000043D0, 0x000037C7, 0x00005CE0, 0x00005446, 0x00005942, 0x00050051,
0x0000000B, 0x00005DD7, 0x00005299, 0x00000000, 0x00050051, 0x0000000B,
0x0000571F, 0x00005299, 0x00000001, 0x00050084, 0x0000000B, 0x00003372,
0x00005DD7, 0x0000571F, 0x00050084, 0x0000000B, 0x000038D7, 0x00002226,
0x00003372, 0x00050051, 0x0000000B, 0x00001A95, 0x000043D0, 0x00000001,
0x00050051, 0x0000000B, 0x00005BE6, 0x00003985, 0x00000000, 0x00050084,
0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6, 0x00050051, 0x0000000B,
0x00001AE6, 0x000043D0, 0x00000000, 0x00050080, 0x0000000B, 0x000025E0,
0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B, 0x00004AFF, 0x000025E0,
0x00000A0A, 0x00050080, 0x0000000B, 0x0000187D, 0x000038D7, 0x00004AFF,
0x000500C2, 0x0000000B, 0x00005EF3, 0x0000187D, 0x00000A10, 0x00060041,
0x00000294, 0x00004C91, 0x00000CC7, 0x00000A0B, 0x00005EF3, 0x0004003D,
0x00000017, 0x00003141, 0x00004C91, 0x00050080, 0x0000000B, 0x00002DA7,
0x00005EF3, 0x00000A0D, 0x00060041, 0x00000294, 0x00001C1D, 0x00000CC7,
0x00000011, 0x00000A9F, 0x00000AFA, 0x00000A3A, 0x0004002B, 0x0000000B,
0x00000A84, 0x00000800, 0x0004002B, 0x0000000C, 0x00000A1A, 0x00000005,
0x0004002B, 0x0000000B, 0x00000A19, 0x00000005, 0x0004002B, 0x0000000B,
0x00000A1F, 0x00000007, 0x0004002B, 0x0000000C, 0x00000A20, 0x00000007,
0x0004002B, 0x0000000C, 0x00000A35, 0x0000000E, 0x0004002B, 0x0000000C,
0x00000A11, 0x00000002, 0x0004002B, 0x0000000C, 0x000009DB, 0xFFFFFFF0,
0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C,
0x00000A38, 0x0000000F, 0x0004002B, 0x0000000C, 0x00000A17, 0x00000004,
0x0004002B, 0x0000000C, 0x0000040B, 0xFFFFFE00, 0x0004002B, 0x0000000C,
0x00000A14, 0x00000003, 0x0004002B, 0x0000000C, 0x00000A3B, 0x00000010,
0x0004002B, 0x0000000C, 0x00000388, 0x000001C0, 0x0004002B, 0x0000000C,
0x00000A23, 0x00000008, 0x0004002B, 0x0000000C, 0x00000A1D, 0x00000006,
0x0004002B, 0x0000000C, 0x00000AC8, 0x0000003F, 0x0004002B, 0x0000000B,
0x00000A16, 0x00000004, 0x0004002B, 0x0000000C, 0x0000078B, 0x0FFFFFFF,
0x0004002B, 0x0000000C, 0x00000A05, 0xFFFFFFFE, 0x0007001E, 0x0000040C,
0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x00040020,
0x00000688, 0x00000009, 0x0000040C, 0x0004003B, 0x00000688, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000B, 0x00000A44,
0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B,
0x0000000B, 0x00000AFE, 0x00001000, 0x0004002B, 0x0000000B, 0x00000A31,
0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B,
0x0000000B, 0x00000A52, 0x00000018, 0x0004002B, 0x0000000B, 0x00000A37,
0x0000000F, 0x0004002B, 0x0000000B, 0x00000A5E, 0x0000001C, 0x0005002C,
0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011,
0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B, 0x00000926,
0x01000000, 0x0004002B, 0x0000000B, 0x00000A46, 0x00000014, 0x0005002C,
0x00000011, 0x000008E3, 0x00000A46, 0x00000A52, 0x00040017, 0x00000014,
0x0000000B, 0x00000003, 0x0004002B, 0x0000000B, 0x00000144, 0x000000FF,
0x0004002B, 0x0000000B, 0x00000B54, 0xC00FFC00, 0x00040020, 0x00000291,
0x00000001, 0x00000014, 0x0004003B, 0x00000291, 0x00000F48, 0x00000001,
0x00040020, 0x00000289, 0x00000001, 0x0000000B, 0x0005002C, 0x00000011,
0x0000072A, 0x00000A13, 0x00000A0A, 0x0003001D, 0x000007DC, 0x00000017,
0x0003001E, 0x000007B4, 0x000007DC, 0x00040020, 0x00000A32, 0x00000002,
0x000007B4, 0x0004003B, 0x00000A32, 0x00000CC7, 0x00000002, 0x00040020,
0x00000294, 0x00000002, 0x00000017, 0x0003001D, 0x000007DD, 0x00000017,
0x0003001E, 0x000007B5, 0x000007DD, 0x00040020, 0x00000A33, 0x00000002,
0x000007B5, 0x0004003B, 0x00000A33, 0x00001592, 0x00000002, 0x0006002C,
0x00000014, 0x00000AC7, 0x00000A22, 0x00000A22, 0x00000A0D, 0x0005002C,
0x00000011, 0x0000074E, 0x00000A13, 0x00000A13, 0x0005002C, 0x00000011,
0x0000084A, 0x00000A37, 0x00000A37, 0x0007002C, 0x00000017, 0x0000072E,
0x000005FD, 0x000005FD, 0x000005FD, 0x000005FD, 0x0007002C, 0x00000017,
0x0000064B, 0x00000144, 0x00000144, 0x00000144, 0x00000144, 0x0007002C,
0x00000017, 0x000002ED, 0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00000A3A,
0x0007002C, 0x00000017, 0x00000930, 0x00000B54, 0x00000B54, 0x00000B54,
0x00000B54, 0x0007002C, 0x00000017, 0x000003A1, 0x00000A44, 0x00000A44,
0x00000A44, 0x00000A44, 0x0007002C, 0x00000017, 0x000003C5, 0x00000A46,
0x00000A46, 0x00000A46, 0x00000A46, 0x0004002B, 0x0000000B, 0x00000A25,
0x00000009, 0x0007002C, 0x00000017, 0x000009CE, 0x000008A6, 0x000008A6,
0x000008A6, 0x000008A6, 0x0007002C, 0x00000017, 0x0000013D, 0x00000A22,
0x00000A22, 0x00000A22, 0x00000A22, 0x0003002A, 0x00000009, 0x00000787,
0x00050036, 0x00000008, 0x0000161F, 0x00000000, 0x00000502, 0x000200F8,
0x00003B06, 0x000300F7, 0x00004C7A, 0x00000000, 0x000300FB, 0x00000A0A,
0x00002E68, 0x000200F8, 0x00002E68, 0x00050041, 0x00000288, 0x000056E5,
0x0000118F, 0x00000A0B, 0x0004003D, 0x0000000B, 0x00003D0B, 0x000056E5,
0x00050041, 0x00000288, 0x000058AC, 0x0000118F, 0x00000A0E, 0x0004003D,
0x0000000B, 0x00005158, 0x000058AC, 0x000500C7, 0x0000000B, 0x00005051,
0x00003D0B, 0x00000A44, 0x000500C2, 0x0000000B, 0x00004E69, 0x00003D0B,
0x00000A28, 0x000500C7, 0x0000000B, 0x00001C09, 0x00004E69, 0x00000A13,
0x000500C7, 0x0000000B, 0x000059EF, 0x00003D0B, 0x00000AFE, 0x000500AB,
0x00000009, 0x0000500F, 0x000059EF, 0x00000A0A, 0x000500C2, 0x0000000B,
0x00002843, 0x00003D0B, 0x00000A31, 0x000500C7, 0x0000000B, 0x00005F72,
0x00002843, 0x00000A81, 0x000500C2, 0x0000000B, 0x00004994, 0x00003D0B,
0x00000A52, 0x000500C7, 0x0000000B, 0x000023AA, 0x00004994, 0x00000A37,
0x00050050, 0x00000011, 0x0000226E, 0x00005158, 0x00005158, 0x000500C2,
0x00000011, 0x00002289, 0x0000226E, 0x0000073F, 0x000500C4, 0x00000011,
0x000057EB, 0x00000724, 0x00000740, 0x00050082, 0x00000011, 0x000048B0,
0x000057EB, 0x00000724, 0x000500C7, 0x00000011, 0x00004937, 0x00002289,
0x000048B0, 0x000500C4, 0x00000011, 0x00005784, 0x00004937, 0x0000074E,
0x00050084, 0x00000011, 0x000059EB, 0x00005784, 0x00000724, 0x000500C2,
0x0000000B, 0x00003213, 0x00005158, 0x00000A19, 0x000500C7, 0x0000000B,
0x00003F4C, 0x00003213, 0x00000A81, 0x00050041, 0x00000288, 0x0000492C,
0x0000118F, 0x00000A11, 0x0004003D, 0x0000000B, 0x00005EAC, 0x0000492C,
0x00050041, 0x00000288, 0x000058AD, 0x0000118F, 0x00000A14, 0x0004003D,
0x0000000B, 0x000051B7, 0x000058AD, 0x000500C7, 0x0000000B, 0x00004ADC,
0x00005EAC, 0x00000A1F, 0x000500C7, 0x0000000B, 0x000055EF, 0x00005EAC,
0x00000A22, 0x000500AB, 0x00000009, 0x00005010, 0x000055EF, 0x00000A0A,
0x000500C2, 0x0000000B, 0x000028A2, 0x00005EAC, 0x00000A16, 0x000500C7,
0x0000000B, 0x000059FD, 0x000028A2, 0x00000A1F, 0x000500C7, 0x0000000B,
0x00005A4E, 0x00005EAC, 0x00000926, 0x000500AB, 0x00000009, 0x00004C75,
0x00005A4E, 0x00000A0A, 0x000500C7, 0x0000000B, 0x00001F43, 0x000051B7,
0x00000A44, 0x000500C4, 0x0000000B, 0x00003DA7, 0x00001F43, 0x00000A19,
0x000500C2, 0x0000000B, 0x0000583F, 0x000051B7, 0x00000A28, 0x000500C7,
0x0000000B, 0x00004BBE, 0x0000583F, 0x00000A44, 0x000500C4, 0x0000000B,
0x00006273, 0x00004BBE, 0x00000A19, 0x00050050, 0x00000011, 0x000028B6,
0x000051B7, 0x000051B7, 0x000500C2, 0x00000011, 0x00002891, 0x000028B6,
0x000008E3, 0x000500C7, 0x00000011, 0x00005B53, 0x00002891, 0x0000084A,
0x000500C4, 0x00000011, 0x00003F4F, 0x00005B53, 0x0000074E, 0x00050084,
0x00000011, 0x000059EC, 0x00003F4F, 0x00000724, 0x000500C2, 0x0000000B,
0x00003214, 0x000051B7, 0x00000A5E, 0x000500C7, 0x0000000B, 0x00003F4D,
0x00003214, 0x00000A1F, 0x00050041, 0x00000288, 0x0000492D, 0x0000118F,
0x00000A17, 0x0004003D, 0x0000000B, 0x00005EAD, 0x0000492D, 0x00050041,
0x00000289, 0x000056D1, 0x00000F48, 0x00000A0A, 0x0004003D, 0x0000000B,
0x00001BAD, 0x000056D1, 0x000500AE, 0x00000009, 0x00001CED, 0x00001BAD,
0x00003F4C, 0x000300F7, 0x00004427, 0x00000002, 0x000400FA, 0x00001CED,
0x000055E8, 0x00004427, 0x000200F8, 0x000055E8, 0x000200F9, 0x00004C7A,
0x000200F8, 0x00004427, 0x0004003D, 0x00000014, 0x0000392D, 0x00000F48,
0x0007004F, 0x00000011, 0x00004849, 0x0000392D, 0x0000392D, 0x00000000,
0x00000001, 0x000500C4, 0x00000011, 0x00002670, 0x00004849, 0x0000072A,
0x00050051, 0x0000000B, 0x00005FB2, 0x00002670, 0x00000000, 0x00050051,
0x0000000B, 0x00001BEE, 0x00002670, 0x00000001, 0x0007000C, 0x0000000B,
0x00005F7E, 0x00000001, 0x00000029, 0x00001BEE, 0x00000A0A, 0x00050050,
0x00000011, 0x000051EF, 0x00005FB2, 0x00005F7E, 0x00050080, 0x00000011,
0x0000522C, 0x000051EF, 0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB,
0x00003F4D, 0x00000A13, 0x000300F7, 0x00005CE0, 0x00000000, 0x000400FA,
0x00003ECB, 0x00002AEE, 0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA,
0x00000009, 0x000034FE, 0x00003F4D, 0x00000A19, 0x000600A9, 0x0000000B,
0x000020F6, 0x000034FE, 0x00000A10, 0x00000A0A, 0x000200F9, 0x00005CE0,
0x000200F8, 0x00002AEE, 0x000200F9, 0x00005CE0, 0x000200F8, 0x00005CE0,
0x000700F5, 0x0000000B, 0x00004B64, 0x00003F4D, 0x00002AEE, 0x000020F6,
0x00003AEF, 0x00050050, 0x00000011, 0x000041BE, 0x00001C09, 0x00001C09,
0x000500AE, 0x0000000F, 0x00002E19, 0x000041BE, 0x0000072D, 0x000600A9,
0x00000011, 0x00004BB5, 0x00002E19, 0x00000724, 0x0000070F, 0x000500C4,
0x00000011, 0x00002AEA, 0x0000522C, 0x00004BB5, 0x00050050, 0x00000011,
0x0000605D, 0x00004B64, 0x00004B64, 0x000500C2, 0x00000011, 0x00002385,
0x0000605D, 0x00000718, 0x000500C7, 0x00000011, 0x00003EC8, 0x00002385,
0x00000724, 0x00050080, 0x00000011, 0x00004F30, 0x00002AEA, 0x00003EC8,
0x00050084, 0x00000011, 0x00005299, 0x00000A9F, 0x00000724, 0x000500C2,
0x00000011, 0x00003985, 0x00005299, 0x0000070F, 0x00050086, 0x00000011,
0x00004D57, 0x00004F30, 0x00003985, 0x00050051, 0x0000000B, 0x00004FA6,
0x00004D57, 0x00000001, 0x00050084, 0x0000000B, 0x00002B26, 0x00004FA6,
0x00005051, 0x00050051, 0x0000000B, 0x00006059, 0x00004D57, 0x00000000,
0x00050080, 0x0000000B, 0x00005420, 0x00002B26, 0x00006059, 0x00050080,
0x0000000B, 0x00002226, 0x00005F72, 0x00005420, 0x00050084, 0x00000011,
0x0000193B, 0x00004D57, 0x00003985, 0x00050082, 0x00000011, 0x000037C7,
0x00004F30, 0x0000193B, 0x000300F7, 0x00004944, 0x00000000, 0x000400FA,
0x0000500F, 0x00002E70, 0x00004944, 0x000200F8, 0x00002E70, 0x00050051,
0x0000000B, 0x00004259, 0x00003985, 0x00000000, 0x000500C2, 0x0000000B,
0x000033FB, 0x00004259, 0x00000A0D, 0x00050051, 0x0000000B, 0x000056BF,
0x000037C7, 0x00000000, 0x0004007C, 0x0000000C, 0x00003B5D, 0x000056BF,
0x000500AE, 0x00000009, 0x00003D78, 0x000056BF, 0x000033FB, 0x000300F7,
0x00005942, 0x00000000, 0x000400FA, 0x00003D78, 0x00005A15, 0x00005FF5,
0x000200F8, 0x00005FF5, 0x0004007C, 0x0000000C, 0x000050D5, 0x000033FB,
0x000200F9, 0x00005942, 0x000200F8, 0x00005A15, 0x0004007C, 0x0000000C,
0x000049C5, 0x000033FB, 0x0004007E, 0x0000000C, 0x0000432F, 0x000049C5,
0x000200F9, 0x00005942, 0x000200F8, 0x00005942, 0x000700F5, 0x0000000C,
0x0000273E, 0x0000432F, 0x00005A15, 0x000050D5, 0x00005FF5, 0x00050080,
0x0000000C, 0x00002ECF, 0x00003B5D, 0x0000273E, 0x0004007C, 0x0000000B,
0x0000452D, 0x00002ECF, 0x00060052, 0x00000011, 0x00005446, 0x0000452D,
0x000037C7, 0x00000000, 0x000200F9, 0x00004944, 0x000200F8, 0x00004944,
0x000700F5, 0x00000011, 0x000043D0, 0x000037C7, 0x00005CE0, 0x00005446,
0x00005942, 0x00050051, 0x0000000B, 0x00005DD7, 0x00005299, 0x00000000,
0x00050051, 0x0000000B, 0x0000571F, 0x00005299, 0x00000001, 0x00050084,
0x0000000B, 0x00003372, 0x00005DD7, 0x0000571F, 0x00050084, 0x0000000B,
0x000038D7, 0x00002226, 0x00003372, 0x00050051, 0x0000000B, 0x00001A95,
0x000043D0, 0x00000001, 0x00050051, 0x0000000B, 0x00005BE6, 0x00003985,
0x00000000, 0x00050084, 0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6,
0x00050051, 0x0000000B, 0x00001AE6, 0x000043D0, 0x00000000, 0x00050080,
0x0000000B, 0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B,
0x00004665, 0x000025E0, 0x00000A0A, 0x00050080, 0x0000000B, 0x000047BB,
0x000038D7, 0x00004665, 0x00050084, 0x0000000B, 0x0000363C, 0x00003372,
0x00000A84, 0x00050089, 0x0000000B, 0x00004D53, 0x000047BB, 0x0000363C,
0x000500C2, 0x0000000B, 0x0000552E, 0x00004D53, 0x00000A10, 0x00060041,
0x00000294, 0x00004316, 0x00000CC7, 0x00000A0B, 0x0000552E, 0x0004003D,
0x00000017, 0x00003141, 0x00004316, 0x00050080, 0x0000000B, 0x00002DA7,
0x0000552E, 0x00000A0D, 0x00060041, 0x00000294, 0x00001C1D, 0x00000CC7,
0x00000A0B, 0x00002DA7, 0x0004003D, 0x00000017, 0x000047B8, 0x00001C1D,
0x000500AA, 0x00000009, 0x00003C70, 0x00005FB2, 0x00000A0A, 0x000600A9,
0x00000009, 0x00003CF3, 0x00003C70, 0x00000787, 0x00003C70, 0x000300F7,

View File

@ -54,6 +54,7 @@
%1816 = OpConstantComposite %v2uint %uint_1 %uint_0
%uint_80 = OpConstant %uint 80
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%uint_2048 = OpConstant %uint 2048
%int_5 = OpConstant %int 5
%uint_5 = OpConstant %uint 5
%uint_7 = OpConstant %uint 7
@ -83,17 +84,15 @@
%uint_10 = OpConstant %uint 10
%uint_4096 = OpConstant %uint 4096
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_25 = OpConstant %uint 25
%uint_2047 = OpConstant %uint 2047
%uint_24 = OpConstant %uint 24
%uint_15 = OpConstant %uint 15
%uint_28 = OpConstant %uint 28
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_2047 = OpConstant %uint 2047
%uint_16777216 = OpConstant %uint 16777216
%uint_20 = OpConstant %uint 20
%uint_24 = OpConstant %uint 24
%2275 = OpConstantComposite %v2uint %uint_20 %uint_24
%uint_28 = OpConstant %uint 28
%v3uint = OpTypeVector %uint 3
%uint_255 = OpConstant %uint 255
%uint_3222273024 = OpConstant %uint 3222273024
@ -138,8 +137,8 @@
%21999 = OpBitwiseAnd %uint %15627 %uint_4096
%20495 = OpINotEqual %bool %21999 %uint_0
%10307 = OpShiftRightLogical %uint %15627 %uint_13
%24434 = OpBitwiseAnd %uint %10307 %uint_4095
%18836 = OpShiftRightLogical %uint %15627 %uint_25
%24434 = OpBitwiseAnd %uint %10307 %uint_2047
%18836 = OpShiftRightLogical %uint %15627 %uint_24
%9130 = OpBitwiseAnd %uint %18836 %uint_15
%8814 = OpCompositeConstruct %v2uint %20919 %20919
%8841 = OpShiftRightLogical %v2uint %8814 %1855
@ -253,41 +252,43 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %17360 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_0
%8283 = OpIAdd %uint %14551 %19199
%9503 = OpShiftRightLogical %uint %8283 %uint_2
%11163 = OpINotEqual %bool %16205 %uint_2
%18021 = OpShiftLeftLogical %uint %9696 %uint_0
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%21809 = OpUMod %uint %18363 %13884
%7002 = OpShiftRightLogical %uint %21809 %uint_2
%8736 = OpINotEqual %bool %16205 %uint_2
OpSelectionMerge %13276 None
OpBranchConditional %11163 %16434 %13276
OpBranchConditional %8736 %16434 %13276
%16434 = OpLabel
%10585 = OpINotEqual %bool %16205 %uint_3
OpBranch %13276
%13276 = OpLabel
%10924 = OpPhi %bool %11163 %18756 %10585 %16434
%10924 = OpPhi %bool %8736 %18756 %10585 %16434
OpSelectionMerge %21872 DontFlatten
OpBranchConditional %10924 %11374 %12129
%12129 = OpLabel
%18514 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %9503
%18514 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %7002
%13258 = OpLoad %v4uint %18514
%19234 = OpCompositeExtract %uint %13258 1
%15341 = OpCompositeInsert %v4uint %19234 %13853 0
%20745 = OpCompositeExtract %uint %13258 3
%7681 = OpCompositeInsert %v4uint %20745 %15341 1
%18762 = OpIAdd %uint %9503 %uint_1
%18762 = OpIAdd %uint %7002 %uint_1
%6300 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %18762
%13033 = OpLoad %v4uint %6300
%19235 = OpCompositeExtract %uint %13033 1
%15342 = OpCompositeInsert %v4uint %19235 %7681 2
%20746 = OpCompositeExtract %uint %13033 3
%7682 = OpCompositeInsert %v4uint %20746 %15342 3
%18763 = OpIAdd %uint %9503 %uint_2
%18763 = OpIAdd %uint %7002 %uint_2
%6301 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %18763
%13034 = OpLoad %v4uint %6301
%19236 = OpCompositeExtract %uint %13034 1
%15343 = OpCompositeInsert %v4uint %19236 %13853 0
%20747 = OpCompositeExtract %uint %13034 3
%7683 = OpCompositeInsert %v4uint %20747 %15343 1
%18764 = OpIAdd %uint %9503 %uint_3
%18764 = OpIAdd %uint %7002 %uint_3
%6302 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %18764
%13035 = OpLoad %v4uint %6302
%19237 = OpCompositeExtract %uint %13035 1
@ -296,27 +297,27 @@
%9296 = OpCompositeInsert %v4uint %23044 %15344 3
OpBranch %21872
%11374 = OpLabel
%20936 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %9503
%20936 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %7002
%13259 = OpLoad %v4uint %20936
%19238 = OpCompositeExtract %uint %13259 0
%15345 = OpCompositeInsert %v4uint %19238 %13853 0
%20748 = OpCompositeExtract %uint %13259 2
%7684 = OpCompositeInsert %v4uint %20748 %15345 1
%18765 = OpIAdd %uint %9503 %uint_1
%18765 = OpIAdd %uint %7002 %uint_1
%6303 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %18765
%13036 = OpLoad %v4uint %6303
%19239 = OpCompositeExtract %uint %13036 0
%15346 = OpCompositeInsert %v4uint %19239 %7684 2
%20749 = OpCompositeExtract %uint %13036 2
%7685 = OpCompositeInsert %v4uint %20749 %15346 3
%18766 = OpIAdd %uint %9503 %uint_2
%18766 = OpIAdd %uint %7002 %uint_2
%6304 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %18766
%13037 = OpLoad %v4uint %6304
%19240 = OpCompositeExtract %uint %13037 0
%15347 = OpCompositeInsert %v4uint %19240 %13853 0
%20750 = OpCompositeExtract %uint %13037 2
%7686 = OpCompositeInsert %v4uint %20750 %15347 1
%18767 = OpIAdd %uint %9503 %uint_3
%18767 = OpIAdd %uint %7002 %uint_3
%6305 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %18767
%13038 = OpLoad %v4uint %6305
%19241 = OpCompositeExtract %uint %13038 0
@ -586,206 +587,207 @@ const uint32_t resolve_fast_32bpp_4xmsaa_cs[] = {
0x0000070F, 0x00000A0A, 0x00000A0A, 0x0005002C, 0x00000011, 0x00000724,
0x00000A0D, 0x00000A0D, 0x0005002C, 0x00000011, 0x00000718, 0x00000A0D,
0x00000A0A, 0x0004002B, 0x0000000B, 0x00000AFA, 0x00000050, 0x0005002C,
0x00000011, 0x00000A9F, 0x00000AFA, 0x00000A3A, 0x0004002B, 0x0000000C,
0x00000A1A, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A19, 0x00000005,
0x0004002B, 0x0000000B, 0x00000A1F, 0x00000007, 0x0004002B, 0x0000000C,
0x00000A20, 0x00000007, 0x0004002B, 0x0000000C, 0x00000A35, 0x0000000E,
0x0004002B, 0x0000000C, 0x00000A11, 0x00000002, 0x0004002B, 0x0000000C,
0x000009DB, 0xFFFFFFF0, 0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001,
0x0004002B, 0x0000000C, 0x00000A38, 0x0000000F, 0x0004002B, 0x0000000C,
0x00000A17, 0x00000004, 0x0004002B, 0x0000000C, 0x0000040B, 0xFFFFFE00,
0x0004002B, 0x0000000C, 0x00000A14, 0x00000003, 0x0004002B, 0x0000000C,
0x00000A3B, 0x00000010, 0x0004002B, 0x0000000C, 0x00000388, 0x000001C0,
0x0004002B, 0x0000000C, 0x00000A23, 0x00000008, 0x0004002B, 0x0000000C,
0x00000A1D, 0x00000006, 0x0004002B, 0x0000000C, 0x00000AC8, 0x0000003F,
0x0004002B, 0x0000000B, 0x00000A16, 0x00000004, 0x0004002B, 0x0000000C,
0x0000078B, 0x0FFFFFFF, 0x0004002B, 0x0000000C, 0x00000A05, 0xFFFFFFFE,
0x0007001E, 0x0000040C, 0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B,
0x0000000B, 0x00040020, 0x00000688, 0x00000009, 0x0000040C, 0x0004003B,
0x00000688, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000AFE, 0x00001000, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000AFB,
0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A55, 0x00000019, 0x0004002B,
0x0000000B, 0x00000A37, 0x0000000F, 0x0005002C, 0x00000011, 0x0000073F,
0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011, 0x00000740, 0x00000A16,
0x00000A0D, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B,
0x0000000B, 0x00000926, 0x01000000, 0x0004002B, 0x0000000B, 0x00000A46,
0x00000014, 0x0004002B, 0x0000000B, 0x00000A52, 0x00000018, 0x0005002C,
0x00000011, 0x000008E3, 0x00000A46, 0x00000A52, 0x0004002B, 0x0000000B,
0x00000A5E, 0x0000001C, 0x00040017, 0x00000014, 0x0000000B, 0x00000003,
0x0004002B, 0x0000000B, 0x00000144, 0x000000FF, 0x0004002B, 0x0000000B,
0x00000B54, 0xC00FFC00, 0x00040020, 0x00000291, 0x00000001, 0x00000014,
0x0004003B, 0x00000291, 0x00000F48, 0x00000001, 0x00040020, 0x00000289,
0x00000001, 0x0000000B, 0x0005002C, 0x00000011, 0x0000072A, 0x00000A13,
0x00000A0A, 0x0003001D, 0x000007DC, 0x00000017, 0x0003001E, 0x000007B4,
0x000007DC, 0x00040020, 0x00000A32, 0x00000002, 0x000007B4, 0x0004003B,
0x00000A32, 0x00000CC7, 0x00000002, 0x00040020, 0x00000294, 0x00000002,
0x00000017, 0x0003001D, 0x000007DD, 0x00000017, 0x0003001E, 0x000007B5,
0x000007DD, 0x00040020, 0x00000A33, 0x00000002, 0x000007B5, 0x0004003B,
0x00000A33, 0x00001592, 0x00000002, 0x0006002C, 0x00000014, 0x00000AC7,
0x00000A22, 0x00000A22, 0x00000A0D, 0x00030001, 0x00000017, 0x0000361D,
0x0005002C, 0x00000011, 0x0000074E, 0x00000A13, 0x00000A13, 0x0005002C,
0x00000011, 0x0000084A, 0x00000A37, 0x00000A37, 0x0005002C, 0x00000011,
0x00000739, 0x00000A10, 0x00000A10, 0x0007002C, 0x00000017, 0x0000072E,
0x000005FD, 0x000005FD, 0x000005FD, 0x000005FD, 0x0007002C, 0x00000017,
0x0000064B, 0x00000144, 0x00000144, 0x00000144, 0x00000144, 0x0007002C,
0x00000017, 0x000002ED, 0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00000A3A,
0x0007002C, 0x00000017, 0x00000930, 0x00000B54, 0x00000B54, 0x00000B54,
0x00000B54, 0x0007002C, 0x00000017, 0x000003A1, 0x00000A44, 0x00000A44,
0x00000A44, 0x00000A44, 0x0007002C, 0x00000017, 0x000003C5, 0x00000A46,
0x00000A46, 0x00000A46, 0x00000A46, 0x0004002B, 0x0000000B, 0x00000A25,
0x00000009, 0x0007002C, 0x00000017, 0x000009CE, 0x000008A6, 0x000008A6,
0x000008A6, 0x000008A6, 0x0007002C, 0x00000017, 0x0000013D, 0x00000A22,
0x00000A22, 0x00000A22, 0x00000A22, 0x0003002A, 0x00000009, 0x00000787,
0x00050036, 0x00000008, 0x0000161F, 0x00000000, 0x00000502, 0x000200F8,
0x00003B06, 0x000300F7, 0x00004C7A, 0x00000000, 0x000300FB, 0x00000A0A,
0x00002E68, 0x000200F8, 0x00002E68, 0x00050041, 0x00000288, 0x000056E5,
0x0000118F, 0x00000A0B, 0x0004003D, 0x0000000B, 0x00003D0B, 0x000056E5,
0x00050041, 0x00000288, 0x000058AC, 0x0000118F, 0x00000A0E, 0x0004003D,
0x0000000B, 0x000051B7, 0x000058AC, 0x000500C7, 0x0000000B, 0x00004ADC,
0x00003D0B, 0x00000A44, 0x000500C7, 0x0000000B, 0x000055EF, 0x00003D0B,
0x00000AFE, 0x000500AB, 0x00000009, 0x0000500F, 0x000055EF, 0x00000A0A,
0x000500C2, 0x0000000B, 0x00002843, 0x00003D0B, 0x00000A31, 0x000500C7,
0x0000000B, 0x00005F72, 0x00002843, 0x00000AFB, 0x000500C2, 0x0000000B,
0x00004994, 0x00003D0B, 0x00000A55, 0x000500C7, 0x0000000B, 0x000023AA,
0x00004994, 0x00000A37, 0x00050050, 0x00000011, 0x0000226E, 0x000051B7,
0x000051B7, 0x000500C2, 0x00000011, 0x00002289, 0x0000226E, 0x0000073F,
0x000500C4, 0x00000011, 0x000057EB, 0x00000724, 0x00000740, 0x00050082,
0x00000011, 0x000048B0, 0x000057EB, 0x00000724, 0x000500C7, 0x00000011,
0x00004937, 0x00002289, 0x000048B0, 0x000500C4, 0x00000011, 0x00005784,
0x00004937, 0x0000074E, 0x00050084, 0x00000011, 0x000059EB, 0x00005784,
0x00000724, 0x000500C2, 0x0000000B, 0x00003213, 0x000051B7, 0x00000A19,
0x000500C7, 0x0000000B, 0x00003F4C, 0x00003213, 0x00000A81, 0x00050041,
0x00000288, 0x0000492C, 0x0000118F, 0x00000A11, 0x0004003D, 0x0000000B,
0x00005EAC, 0x0000492C, 0x00050041, 0x00000288, 0x000058AD, 0x0000118F,
0x00000A14, 0x0004003D, 0x0000000B, 0x000051B8, 0x000058AD, 0x000500C7,
0x0000000B, 0x00004ADD, 0x00005EAC, 0x00000A1F, 0x000500C7, 0x0000000B,
0x000055F0, 0x00005EAC, 0x00000A22, 0x000500AB, 0x00000009, 0x00005010,
0x000055F0, 0x00000A0A, 0x000500C2, 0x0000000B, 0x000028A2, 0x00005EAC,
0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD, 0x000028A2, 0x00000A1F,
0x000500C7, 0x0000000B, 0x00005A4E, 0x00005EAC, 0x00000926, 0x000500AB,
0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A, 0x000500C7, 0x0000000B,
0x00001F43, 0x000051B8, 0x00000A44, 0x000500C4, 0x0000000B, 0x00003DA7,
0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B, 0x0000583F, 0x000051B8,
0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE, 0x0000583F, 0x00000A44,
0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE, 0x00000A19, 0x00050050,
0x00000011, 0x000028B6, 0x000051B8, 0x000051B8, 0x000500C2, 0x00000011,
0x00002891, 0x000028B6, 0x000008E3, 0x000500C7, 0x00000011, 0x00005B53,
0x00002891, 0x0000084A, 0x000500C4, 0x00000011, 0x00003F4F, 0x00005B53,
0x0000074E, 0x00050084, 0x00000011, 0x000059EC, 0x00003F4F, 0x00000724,
0x000500C2, 0x0000000B, 0x00003214, 0x000051B8, 0x00000A5E, 0x000500C7,
0x0000000B, 0x00003F4D, 0x00003214, 0x00000A1F, 0x00050041, 0x00000288,
0x0000492D, 0x0000118F, 0x00000A17, 0x0004003D, 0x0000000B, 0x00005EAD,
0x0000492D, 0x00050041, 0x00000289, 0x000056D1, 0x00000F48, 0x00000A0A,
0x0004003D, 0x0000000B, 0x00001BAD, 0x000056D1, 0x000500AE, 0x00000009,
0x00001CED, 0x00001BAD, 0x00003F4C, 0x000300F7, 0x00004427, 0x00000002,
0x000400FA, 0x00001CED, 0x000055E8, 0x00004427, 0x000200F8, 0x000055E8,
0x000200F9, 0x00004C7A, 0x000200F8, 0x00004427, 0x0004003D, 0x00000014,
0x0000392D, 0x00000F48, 0x0007004F, 0x00000011, 0x00004849, 0x0000392D,
0x0000392D, 0x00000000, 0x00000001, 0x000500C4, 0x00000011, 0x00002670,
0x00004849, 0x0000072A, 0x00050051, 0x0000000B, 0x00005FB2, 0x00002670,
0x00000000, 0x00050051, 0x0000000B, 0x00001BEE, 0x00002670, 0x00000001,
0x0007000C, 0x0000000B, 0x00005F7E, 0x00000001, 0x00000029, 0x00001BEE,
0x00000A0A, 0x00050050, 0x00000011, 0x000051EF, 0x00005FB2, 0x00005F7E,
0x00050080, 0x00000011, 0x0000522C, 0x000051EF, 0x000059EB, 0x000500B2,
0x00000009, 0x00003ECB, 0x00003F4D, 0x00000A13, 0x000300F7, 0x0000195B,
0x00000000, 0x000400FA, 0x00003ECB, 0x00002AEE, 0x00003AEF, 0x000200F8,
0x00003AEF, 0x000500AA, 0x00000009, 0x000034FE, 0x00003F4D, 0x00000A19,
0x000600A9, 0x0000000B, 0x000020F6, 0x000034FE, 0x00000A10, 0x00000A0A,
0x000200F9, 0x0000195B, 0x000200F8, 0x00002AEE, 0x000200F9, 0x0000195B,
0x000200F8, 0x0000195B, 0x000700F5, 0x0000000B, 0x000055FE, 0x00003F4D,
0x00002AEE, 0x000020F6, 0x00003AEF, 0x000500AE, 0x0000000F, 0x00005BE0,
0x00000739, 0x0000072D, 0x000600A9, 0x00000011, 0x00001E5B, 0x00005BE0,
0x00000724, 0x0000070F, 0x000500C4, 0x00000011, 0x00002AEA, 0x0000522C,
0x00001E5B, 0x00050050, 0x00000011, 0x0000605D, 0x000055FE, 0x000055FE,
0x000500C2, 0x00000011, 0x00002385, 0x0000605D, 0x00000718, 0x000500C7,
0x00000011, 0x00003EC8, 0x00002385, 0x00000724, 0x00050080, 0x00000011,
0x00004F30, 0x00002AEA, 0x00003EC8, 0x00050084, 0x00000011, 0x00005299,
0x00000A9F, 0x00000724, 0x000500C2, 0x00000011, 0x00003985, 0x00005299,
0x0000070F, 0x00050086, 0x00000011, 0x00004D57, 0x00004F30, 0x00003985,
0x00050051, 0x0000000B, 0x00004FA6, 0x00004D57, 0x00000001, 0x00050084,
0x0000000B, 0x00002B26, 0x00004FA6, 0x00004ADC, 0x00050051, 0x0000000B,
0x00006059, 0x00004D57, 0x00000000, 0x00050080, 0x0000000B, 0x00005420,
0x00002B26, 0x00006059, 0x00050080, 0x0000000B, 0x00002226, 0x00005F72,
0x00005420, 0x00050084, 0x00000011, 0x0000193B, 0x00004D57, 0x00003985,
0x00050082, 0x00000011, 0x000037C7, 0x00004F30, 0x0000193B, 0x000300F7,
0x00004944, 0x00000000, 0x000400FA, 0x0000500F, 0x00002E70, 0x00004944,
0x000200F8, 0x00002E70, 0x00050051, 0x0000000B, 0x00004259, 0x00003985,
0x00000000, 0x000500C2, 0x0000000B, 0x000033FB, 0x00004259, 0x00000A0D,
0x00050051, 0x0000000B, 0x000056BF, 0x000037C7, 0x00000000, 0x0004007C,
0x0000000C, 0x00003B5D, 0x000056BF, 0x000500AE, 0x00000009, 0x00003D78,
0x000056BF, 0x000033FB, 0x000300F7, 0x00005942, 0x00000000, 0x000400FA,
0x00003D78, 0x00005A15, 0x00005FF5, 0x000200F8, 0x00005FF5, 0x0004007C,
0x0000000C, 0x000050D5, 0x000033FB, 0x000200F9, 0x00005942, 0x000200F8,
0x00005A15, 0x0004007C, 0x0000000C, 0x000049C5, 0x000033FB, 0x0004007E,
0x0000000C, 0x0000432F, 0x000049C5, 0x000200F9, 0x00005942, 0x000200F8,
0x00005942, 0x000700F5, 0x0000000C, 0x0000273E, 0x0000432F, 0x00005A15,
0x000050D5, 0x00005FF5, 0x00050080, 0x0000000C, 0x00002ECF, 0x00003B5D,
0x0000273E, 0x0004007C, 0x0000000B, 0x0000452D, 0x00002ECF, 0x00060052,
0x00000011, 0x00005446, 0x0000452D, 0x000037C7, 0x00000000, 0x000200F9,
0x00004944, 0x000200F8, 0x00004944, 0x000700F5, 0x00000011, 0x000043D0,
0x000037C7, 0x0000195B, 0x00005446, 0x00005942, 0x00050051, 0x0000000B,
0x00005DD7, 0x00005299, 0x00000000, 0x00050051, 0x0000000B, 0x0000571F,
0x00005299, 0x00000001, 0x00050084, 0x0000000B, 0x00003372, 0x00005DD7,
0x0000571F, 0x00050084, 0x0000000B, 0x000038D7, 0x00002226, 0x00003372,
0x00050051, 0x0000000B, 0x00001A95, 0x000043D0, 0x00000001, 0x00050051,
0x0000000B, 0x00005BE6, 0x00003985, 0x00000000, 0x00050084, 0x0000000B,
0x00005966, 0x00001A95, 0x00005BE6, 0x00050051, 0x0000000B, 0x00001AE6,
0x000043D0, 0x00000000, 0x00050080, 0x0000000B, 0x000025E0, 0x00005966,
0x00001AE6, 0x000500C4, 0x0000000B, 0x00004AFF, 0x000025E0, 0x00000A0A,
0x00050080, 0x0000000B, 0x0000205B, 0x000038D7, 0x00004AFF, 0x000500C2,
0x0000000B, 0x0000251F, 0x0000205B, 0x00000A10, 0x000500AB, 0x00000009,
0x00002B9B, 0x00003F4D, 0x00000A10, 0x000300F7, 0x000033DC, 0x00000000,
0x000400FA, 0x00002B9B, 0x00004032, 0x000033DC, 0x000200F8, 0x00004032,
0x00000011, 0x00000A9F, 0x00000AFA, 0x00000A3A, 0x0004002B, 0x0000000B,
0x00000A84, 0x00000800, 0x0004002B, 0x0000000C, 0x00000A1A, 0x00000005,
0x0004002B, 0x0000000B, 0x00000A19, 0x00000005, 0x0004002B, 0x0000000B,
0x00000A1F, 0x00000007, 0x0004002B, 0x0000000C, 0x00000A20, 0x00000007,
0x0004002B, 0x0000000C, 0x00000A35, 0x0000000E, 0x0004002B, 0x0000000C,
0x00000A11, 0x00000002, 0x0004002B, 0x0000000C, 0x000009DB, 0xFFFFFFF0,
0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C,
0x00000A38, 0x0000000F, 0x0004002B, 0x0000000C, 0x00000A17, 0x00000004,
0x0004002B, 0x0000000C, 0x0000040B, 0xFFFFFE00, 0x0004002B, 0x0000000C,
0x00000A14, 0x00000003, 0x0004002B, 0x0000000C, 0x00000A3B, 0x00000010,
0x0004002B, 0x0000000C, 0x00000388, 0x000001C0, 0x0004002B, 0x0000000C,
0x00000A23, 0x00000008, 0x0004002B, 0x0000000C, 0x00000A1D, 0x00000006,
0x0004002B, 0x0000000C, 0x00000AC8, 0x0000003F, 0x0004002B, 0x0000000B,
0x00000A16, 0x00000004, 0x0004002B, 0x0000000C, 0x0000078B, 0x0FFFFFFF,
0x0004002B, 0x0000000C, 0x00000A05, 0xFFFFFFFE, 0x0007001E, 0x0000040C,
0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x00040020,
0x00000688, 0x00000009, 0x0000040C, 0x0004003B, 0x00000688, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000B, 0x00000A44,
0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B,
0x0000000B, 0x00000AFE, 0x00001000, 0x0004002B, 0x0000000B, 0x00000A31,
0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B,
0x0000000B, 0x00000A52, 0x00000018, 0x0004002B, 0x0000000B, 0x00000A37,
0x0000000F, 0x0004002B, 0x0000000B, 0x00000A5E, 0x0000001C, 0x0005002C,
0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011,
0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B, 0x00000926,
0x01000000, 0x0004002B, 0x0000000B, 0x00000A46, 0x00000014, 0x0005002C,
0x00000011, 0x000008E3, 0x00000A46, 0x00000A52, 0x00040017, 0x00000014,
0x0000000B, 0x00000003, 0x0004002B, 0x0000000B, 0x00000144, 0x000000FF,
0x0004002B, 0x0000000B, 0x00000B54, 0xC00FFC00, 0x00040020, 0x00000291,
0x00000001, 0x00000014, 0x0004003B, 0x00000291, 0x00000F48, 0x00000001,
0x00040020, 0x00000289, 0x00000001, 0x0000000B, 0x0005002C, 0x00000011,
0x0000072A, 0x00000A13, 0x00000A0A, 0x0003001D, 0x000007DC, 0x00000017,
0x0003001E, 0x000007B4, 0x000007DC, 0x00040020, 0x00000A32, 0x00000002,
0x000007B4, 0x0004003B, 0x00000A32, 0x00000CC7, 0x00000002, 0x00040020,
0x00000294, 0x00000002, 0x00000017, 0x0003001D, 0x000007DD, 0x00000017,
0x0003001E, 0x000007B5, 0x000007DD, 0x00040020, 0x00000A33, 0x00000002,
0x000007B5, 0x0004003B, 0x00000A33, 0x00001592, 0x00000002, 0x0006002C,
0x00000014, 0x00000AC7, 0x00000A22, 0x00000A22, 0x00000A0D, 0x00030001,
0x00000017, 0x0000361D, 0x0005002C, 0x00000011, 0x0000074E, 0x00000A13,
0x00000A13, 0x0005002C, 0x00000011, 0x0000084A, 0x00000A37, 0x00000A37,
0x0005002C, 0x00000011, 0x00000739, 0x00000A10, 0x00000A10, 0x0007002C,
0x00000017, 0x0000072E, 0x000005FD, 0x000005FD, 0x000005FD, 0x000005FD,
0x0007002C, 0x00000017, 0x0000064B, 0x00000144, 0x00000144, 0x00000144,
0x00000144, 0x0007002C, 0x00000017, 0x000002ED, 0x00000A3A, 0x00000A3A,
0x00000A3A, 0x00000A3A, 0x0007002C, 0x00000017, 0x00000930, 0x00000B54,
0x00000B54, 0x00000B54, 0x00000B54, 0x0007002C, 0x00000017, 0x000003A1,
0x00000A44, 0x00000A44, 0x00000A44, 0x00000A44, 0x0007002C, 0x00000017,
0x000003C5, 0x00000A46, 0x00000A46, 0x00000A46, 0x00000A46, 0x0004002B,
0x0000000B, 0x00000A25, 0x00000009, 0x0007002C, 0x00000017, 0x000009CE,
0x000008A6, 0x000008A6, 0x000008A6, 0x000008A6, 0x0007002C, 0x00000017,
0x0000013D, 0x00000A22, 0x00000A22, 0x00000A22, 0x00000A22, 0x0003002A,
0x00000009, 0x00000787, 0x00050036, 0x00000008, 0x0000161F, 0x00000000,
0x00000502, 0x000200F8, 0x00003B06, 0x000300F7, 0x00004C7A, 0x00000000,
0x000300FB, 0x00000A0A, 0x00002E68, 0x000200F8, 0x00002E68, 0x00050041,
0x00000288, 0x000056E5, 0x0000118F, 0x00000A0B, 0x0004003D, 0x0000000B,
0x00003D0B, 0x000056E5, 0x00050041, 0x00000288, 0x000058AC, 0x0000118F,
0x00000A0E, 0x0004003D, 0x0000000B, 0x000051B7, 0x000058AC, 0x000500C7,
0x0000000B, 0x00004ADC, 0x00003D0B, 0x00000A44, 0x000500C7, 0x0000000B,
0x000055EF, 0x00003D0B, 0x00000AFE, 0x000500AB, 0x00000009, 0x0000500F,
0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B, 0x00002843, 0x00003D0B,
0x00000A31, 0x000500C7, 0x0000000B, 0x00005F72, 0x00002843, 0x00000A81,
0x000500C2, 0x0000000B, 0x00004994, 0x00003D0B, 0x00000A52, 0x000500C7,
0x0000000B, 0x000023AA, 0x00004994, 0x00000A37, 0x00050050, 0x00000011,
0x0000226E, 0x000051B7, 0x000051B7, 0x000500C2, 0x00000011, 0x00002289,
0x0000226E, 0x0000073F, 0x000500C4, 0x00000011, 0x000057EB, 0x00000724,
0x00000740, 0x00050082, 0x00000011, 0x000048B0, 0x000057EB, 0x00000724,
0x000500C7, 0x00000011, 0x00004937, 0x00002289, 0x000048B0, 0x000500C4,
0x00000011, 0x00005784, 0x00004937, 0x0000074E, 0x00050084, 0x00000011,
0x000059EB, 0x00005784, 0x00000724, 0x000500C2, 0x0000000B, 0x00003213,
0x000051B7, 0x00000A19, 0x000500C7, 0x0000000B, 0x00003F4C, 0x00003213,
0x00000A81, 0x00050041, 0x00000288, 0x0000492C, 0x0000118F, 0x00000A11,
0x0004003D, 0x0000000B, 0x00005EAC, 0x0000492C, 0x00050041, 0x00000288,
0x000058AD, 0x0000118F, 0x00000A14, 0x0004003D, 0x0000000B, 0x000051B8,
0x000058AD, 0x000500C7, 0x0000000B, 0x00004ADD, 0x00005EAC, 0x00000A1F,
0x000500C7, 0x0000000B, 0x000055F0, 0x00005EAC, 0x00000A22, 0x000500AB,
0x00000009, 0x00005010, 0x000055F0, 0x00000A0A, 0x000500C2, 0x0000000B,
0x000028A2, 0x00005EAC, 0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD,
0x000028A2, 0x00000A1F, 0x000500C7, 0x0000000B, 0x00005A4E, 0x00005EAC,
0x00000926, 0x000500AB, 0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A,
0x000500C7, 0x0000000B, 0x00001F43, 0x000051B8, 0x00000A44, 0x000500C4,
0x0000000B, 0x00003DA7, 0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B,
0x0000583F, 0x000051B8, 0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE,
0x0000583F, 0x00000A44, 0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE,
0x00000A19, 0x00050050, 0x00000011, 0x000028B6, 0x000051B8, 0x000051B8,
0x000500C2, 0x00000011, 0x00002891, 0x000028B6, 0x000008E3, 0x000500C7,
0x00000011, 0x00005B53, 0x00002891, 0x0000084A, 0x000500C4, 0x00000011,
0x00003F4F, 0x00005B53, 0x0000074E, 0x00050084, 0x00000011, 0x000059EC,
0x00003F4F, 0x00000724, 0x000500C2, 0x0000000B, 0x00003214, 0x000051B8,
0x00000A5E, 0x000500C7, 0x0000000B, 0x00003F4D, 0x00003214, 0x00000A1F,
0x00050041, 0x00000288, 0x0000492D, 0x0000118F, 0x00000A17, 0x0004003D,
0x0000000B, 0x00005EAD, 0x0000492D, 0x00050041, 0x00000289, 0x000056D1,
0x00000F48, 0x00000A0A, 0x0004003D, 0x0000000B, 0x00001BAD, 0x000056D1,
0x000500AE, 0x00000009, 0x00001CED, 0x00001BAD, 0x00003F4C, 0x000300F7,
0x00004427, 0x00000002, 0x000400FA, 0x00001CED, 0x000055E8, 0x00004427,
0x000200F8, 0x000055E8, 0x000200F9, 0x00004C7A, 0x000200F8, 0x00004427,
0x0004003D, 0x00000014, 0x0000392D, 0x00000F48, 0x0007004F, 0x00000011,
0x00004849, 0x0000392D, 0x0000392D, 0x00000000, 0x00000001, 0x000500C4,
0x00000011, 0x00002670, 0x00004849, 0x0000072A, 0x00050051, 0x0000000B,
0x00005FB2, 0x00002670, 0x00000000, 0x00050051, 0x0000000B, 0x00001BEE,
0x00002670, 0x00000001, 0x0007000C, 0x0000000B, 0x00005F7E, 0x00000001,
0x00000029, 0x00001BEE, 0x00000A0A, 0x00050050, 0x00000011, 0x000051EF,
0x00005FB2, 0x00005F7E, 0x00050080, 0x00000011, 0x0000522C, 0x000051EF,
0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB, 0x00003F4D, 0x00000A13,
0x000300F7, 0x0000195B, 0x00000000, 0x000400FA, 0x00003ECB, 0x00002AEE,
0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA, 0x00000009, 0x000034FE,
0x00003F4D, 0x00000A19, 0x000600A9, 0x0000000B, 0x000020F6, 0x000034FE,
0x00000A10, 0x00000A0A, 0x000200F9, 0x0000195B, 0x000200F8, 0x00002AEE,
0x000200F9, 0x0000195B, 0x000200F8, 0x0000195B, 0x000700F5, 0x0000000B,
0x000055FE, 0x00003F4D, 0x00002AEE, 0x000020F6, 0x00003AEF, 0x000500AE,
0x0000000F, 0x00005BE0, 0x00000739, 0x0000072D, 0x000600A9, 0x00000011,
0x00001E5B, 0x00005BE0, 0x00000724, 0x0000070F, 0x000500C4, 0x00000011,
0x00002AEA, 0x0000522C, 0x00001E5B, 0x00050050, 0x00000011, 0x0000605D,
0x000055FE, 0x000055FE, 0x000500C2, 0x00000011, 0x00002385, 0x0000605D,
0x00000718, 0x000500C7, 0x00000011, 0x00003EC8, 0x00002385, 0x00000724,
0x00050080, 0x00000011, 0x00004F30, 0x00002AEA, 0x00003EC8, 0x00050084,
0x00000011, 0x00005299, 0x00000A9F, 0x00000724, 0x000500C2, 0x00000011,
0x00003985, 0x00005299, 0x0000070F, 0x00050086, 0x00000011, 0x00004D57,
0x00004F30, 0x00003985, 0x00050051, 0x0000000B, 0x00004FA6, 0x00004D57,
0x00000001, 0x00050084, 0x0000000B, 0x00002B26, 0x00004FA6, 0x00004ADC,
0x00050051, 0x0000000B, 0x00006059, 0x00004D57, 0x00000000, 0x00050080,
0x0000000B, 0x00005420, 0x00002B26, 0x00006059, 0x00050080, 0x0000000B,
0x00002226, 0x00005F72, 0x00005420, 0x00050084, 0x00000011, 0x0000193B,
0x00004D57, 0x00003985, 0x00050082, 0x00000011, 0x000037C7, 0x00004F30,
0x0000193B, 0x000300F7, 0x00004944, 0x00000000, 0x000400FA, 0x0000500F,
0x00002E70, 0x00004944, 0x000200F8, 0x00002E70, 0x00050051, 0x0000000B,
0x00004259, 0x00003985, 0x00000000, 0x000500C2, 0x0000000B, 0x000033FB,
0x00004259, 0x00000A0D, 0x00050051, 0x0000000B, 0x000056BF, 0x000037C7,
0x00000000, 0x0004007C, 0x0000000C, 0x00003B5D, 0x000056BF, 0x000500AE,
0x00000009, 0x00003D78, 0x000056BF, 0x000033FB, 0x000300F7, 0x00005942,
0x00000000, 0x000400FA, 0x00003D78, 0x00005A15, 0x00005FF5, 0x000200F8,
0x00005FF5, 0x0004007C, 0x0000000C, 0x000050D5, 0x000033FB, 0x000200F9,
0x00005942, 0x000200F8, 0x00005A15, 0x0004007C, 0x0000000C, 0x000049C5,
0x000033FB, 0x0004007E, 0x0000000C, 0x0000432F, 0x000049C5, 0x000200F9,
0x00005942, 0x000200F8, 0x00005942, 0x000700F5, 0x0000000C, 0x0000273E,
0x0000432F, 0x00005A15, 0x000050D5, 0x00005FF5, 0x00050080, 0x0000000C,
0x00002ECF, 0x00003B5D, 0x0000273E, 0x0004007C, 0x0000000B, 0x0000452D,
0x00002ECF, 0x00060052, 0x00000011, 0x00005446, 0x0000452D, 0x000037C7,
0x00000000, 0x000200F9, 0x00004944, 0x000200F8, 0x00004944, 0x000700F5,
0x00000011, 0x000043D0, 0x000037C7, 0x0000195B, 0x00005446, 0x00005942,
0x00050051, 0x0000000B, 0x00005DD7, 0x00005299, 0x00000000, 0x00050051,
0x0000000B, 0x0000571F, 0x00005299, 0x00000001, 0x00050084, 0x0000000B,
0x00003372, 0x00005DD7, 0x0000571F, 0x00050084, 0x0000000B, 0x000038D7,
0x00002226, 0x00003372, 0x00050051, 0x0000000B, 0x00001A95, 0x000043D0,
0x00000001, 0x00050051, 0x0000000B, 0x00005BE6, 0x00003985, 0x00000000,
0x00050084, 0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6, 0x00050051,
0x0000000B, 0x00001AE6, 0x000043D0, 0x00000000, 0x00050080, 0x0000000B,
0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B, 0x00004665,
0x000025E0, 0x00000A0A, 0x00050080, 0x0000000B, 0x000047BB, 0x000038D7,
0x00004665, 0x00050084, 0x0000000B, 0x0000363C, 0x00003372, 0x00000A84,
0x00050089, 0x0000000B, 0x00005531, 0x000047BB, 0x0000363C, 0x000500C2,
0x0000000B, 0x00001B5A, 0x00005531, 0x00000A10, 0x000500AB, 0x00000009,
0x00002220, 0x00003F4D, 0x00000A10, 0x000300F7, 0x000033DC, 0x00000000,
0x000400FA, 0x00002220, 0x00004032, 0x000033DC, 0x000200F8, 0x00004032,
0x000500AB, 0x00000009, 0x00002959, 0x00003F4D, 0x00000A13, 0x000200F9,
0x000033DC, 0x000200F8, 0x000033DC, 0x000700F5, 0x00000009, 0x00002AAC,
0x00002B9B, 0x00004944, 0x00002959, 0x00004032, 0x000300F7, 0x00005570,
0x00002220, 0x00004944, 0x00002959, 0x00004032, 0x000300F7, 0x00005570,
0x00000002, 0x000400FA, 0x00002AAC, 0x00002C6E, 0x00002F61, 0x000200F8,
0x00002F61, 0x00060041, 0x00000294, 0x00004852, 0x00000CC7, 0x00000A0B,
0x0000251F, 0x0004003D, 0x00000017, 0x000033CA, 0x00004852, 0x00050051,
0x00001B5A, 0x0004003D, 0x00000017, 0x000033CA, 0x00004852, 0x00050051,
0x0000000B, 0x00004B22, 0x000033CA, 0x00000001, 0x00060052, 0x00000017,
0x00003BED, 0x00004B22, 0x0000361D, 0x00000000, 0x00050051, 0x0000000B,
0x00005109, 0x000033CA, 0x00000003, 0x00060052, 0x00000017, 0x00001E01,
0x00005109, 0x00003BED, 0x00000001, 0x00050080, 0x0000000B, 0x0000494A,
0x0000251F, 0x00000A0D, 0x00060041, 0x00000294, 0x0000189C, 0x00000CC7,
0x00001B5A, 0x00000A0D, 0x00060041, 0x00000294, 0x0000189C, 0x00000CC7,
0x00000A0B, 0x0000494A, 0x0004003D, 0x00000017, 0x000032E9, 0x0000189C,
0x00050051, 0x0000000B, 0x00004B23, 0x000032E9, 0x00000001, 0x00060052,
0x00000017, 0x00003BEE, 0x00004B23, 0x00001E01, 0x00000002, 0x00050051,
0x0000000B, 0x0000510A, 0x000032E9, 0x00000003, 0x00060052, 0x00000017,
0x00001E02, 0x0000510A, 0x00003BEE, 0x00000003, 0x00050080, 0x0000000B,
0x0000494B, 0x0000251F, 0x00000A10, 0x00060041, 0x00000294, 0x0000189D,
0x0000494B, 0x00001B5A, 0x00000A10, 0x00060041, 0x00000294, 0x0000189D,
0x00000CC7, 0x00000A0B, 0x0000494B, 0x0004003D, 0x00000017, 0x000032EA,
0x0000189D, 0x00050051, 0x0000000B, 0x00004B24, 0x000032EA, 0x00000001,
0x00060052, 0x00000017, 0x00003BEF, 0x00004B24, 0x0000361D, 0x00000000,
0x00050051, 0x0000000B, 0x0000510B, 0x000032EA, 0x00000003, 0x00060052,
0x00000017, 0x00001E03, 0x0000510B, 0x00003BEF, 0x00000001, 0x00050080,
0x0000000B, 0x0000494C, 0x0000251F, 0x00000A13, 0x00060041, 0x00000294,
0x0000000B, 0x0000494C, 0x00001B5A, 0x00000A13, 0x00060041, 0x00000294,
0x0000189E, 0x00000CC7, 0x00000A0B, 0x0000494C, 0x0004003D, 0x00000017,
0x000032EB, 0x0000189E, 0x00050051, 0x0000000B, 0x00004B25, 0x000032EB,
0x00000001, 0x00060052, 0x00000017, 0x00003BF0, 0x00004B25, 0x00001E03,
0x00000002, 0x00050051, 0x0000000B, 0x00005A04, 0x000032EB, 0x00000003,
0x00060052, 0x00000017, 0x00002450, 0x00005A04, 0x00003BF0, 0x00000003,
0x000200F9, 0x00005570, 0x000200F8, 0x00002C6E, 0x00060041, 0x00000294,
0x000051C8, 0x00000CC7, 0x00000A0B, 0x0000251F, 0x0004003D, 0x00000017,
0x000051C8, 0x00000CC7, 0x00000A0B, 0x00001B5A, 0x0004003D, 0x00000017,
0x000033CB, 0x000051C8, 0x00050051, 0x0000000B, 0x00004B26, 0x000033CB,
0x00000000, 0x00060052, 0x00000017, 0x00003BF1, 0x00004B26, 0x0000361D,
0x00000000, 0x00050051, 0x0000000B, 0x0000510C, 0x000033CB, 0x00000002,
0x00060052, 0x00000017, 0x00001E04, 0x0000510C, 0x00003BF1, 0x00000001,
0x00050080, 0x0000000B, 0x0000494D, 0x0000251F, 0x00000A0D, 0x00060041,
0x00050080, 0x0000000B, 0x0000494D, 0x00001B5A, 0x00000A0D, 0x00060041,
0x00000294, 0x0000189F, 0x00000CC7, 0x00000A0B, 0x0000494D, 0x0004003D,
0x00000017, 0x000032EC, 0x0000189F, 0x00050051, 0x0000000B, 0x00004B27,
0x000032EC, 0x00000000, 0x00060052, 0x00000017, 0x00003BF2, 0x00004B27,
0x00001E04, 0x00000002, 0x00050051, 0x0000000B, 0x0000510D, 0x000032EC,
0x00000002, 0x00060052, 0x00000017, 0x00001E05, 0x0000510D, 0x00003BF2,
0x00000003, 0x00050080, 0x0000000B, 0x0000494E, 0x0000251F, 0x00000A10,
0x00000003, 0x00050080, 0x0000000B, 0x0000494E, 0x00001B5A, 0x00000A10,
0x00060041, 0x00000294, 0x000018A0, 0x00000CC7, 0x00000A0B, 0x0000494E,
0x0004003D, 0x00000017, 0x000032ED, 0x000018A0, 0x00050051, 0x0000000B,
0x00004B28, 0x000032ED, 0x00000000, 0x00060052, 0x00000017, 0x00003BF3,
0x00004B28, 0x0000361D, 0x00000000, 0x00050051, 0x0000000B, 0x0000510E,
0x000032ED, 0x00000002, 0x00060052, 0x00000017, 0x00001E06, 0x0000510E,
0x00003BF3, 0x00000001, 0x00050080, 0x0000000B, 0x0000494F, 0x0000251F,
0x00003BF3, 0x00000001, 0x00050080, 0x0000000B, 0x0000494F, 0x00001B5A,
0x00000A13, 0x00060041, 0x00000294, 0x000018A1, 0x00000CC7, 0x00000A0B,
0x0000494F, 0x0004003D, 0x00000017, 0x000032EE, 0x000018A1, 0x00050051,
0x0000000B, 0x00004B29, 0x000032EE, 0x00000000, 0x00060052, 0x00000017,

View File

@ -55,6 +55,7 @@
%1816 = OpConstantComposite %v2uint %uint_1 %uint_0
%uint_80 = OpConstant %uint 80
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%uint_2048 = OpConstant %uint 2048
%int_5 = OpConstant %int 5
%uint_5 = OpConstant %uint 5
%uint_7 = OpConstant %uint 7
@ -82,17 +83,15 @@
%uint_1023 = OpConstant %uint 1023
%uint_10 = OpConstant %uint 10
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_25 = OpConstant %uint 25
%uint_2047 = OpConstant %uint 2047
%uint_24 = OpConstant %uint 24
%uint_15 = OpConstant %uint 15
%uint_28 = OpConstant %uint 28
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_2047 = OpConstant %uint 2047
%uint_16777216 = OpConstant %uint 16777216
%uint_20 = OpConstant %uint 20
%uint_24 = OpConstant %uint 24
%2275 = OpConstantComposite %v2uint %uint_20 %uint_24
%uint_28 = OpConstant %uint 28
%v3uint = OpTypeVector %uint 3
%uint_4294901760 = OpConstant %uint 4294901760
%uint_65535 = OpConstant %uint 65535
@ -132,8 +131,8 @@
%19978 = OpShiftRightLogical %uint %15627 %uint_10
%8574 = OpBitwiseAnd %uint %19978 %uint_3
%21002 = OpShiftRightLogical %uint %15627 %uint_13
%8575 = OpBitwiseAnd %uint %21002 %uint_4095
%18836 = OpShiftRightLogical %uint %15627 %uint_25
%8575 = OpBitwiseAnd %uint %21002 %uint_2047
%18836 = OpShiftRightLogical %uint %15627 %uint_24
%9130 = OpBitwiseAnd %uint %18836 %uint_15
%8814 = OpCompositeConstruct %v2uint %20824 %20824
%8841 = OpShiftRightLogical %v2uint %8814 %1855
@ -222,12 +221,14 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %20715 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_1
%6269 = OpIAdd %uint %14551 %19199
%24307 = OpShiftRightLogical %uint %6269 %uint_2
%19601 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %24307
%12609 = OpLoad %v4uint %19601
%11687 = OpIAdd %uint %24307 %uint_1
%18021 = OpShiftLeftLogical %uint %9696 %uint_1
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%19795 = OpUMod %uint %18363 %13884
%21806 = OpShiftRightLogical %uint %19795 %uint_2
%17174 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %21806
%12609 = OpLoad %v4uint %17174
%11687 = OpIAdd %uint %21806 %uint_1
%7197 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11687
%18360 = OpLoad %v4uint %7197
%15472 = OpIEqual %bool %7640 %uint_0
@ -495,138 +496,139 @@ const uint32_t resolve_fast_64bpp_1x2xmsaa_cs[] = {
0x00000A0A, 0x0005002C, 0x00000011, 0x00000724, 0x00000A0D, 0x00000A0D,
0x0005002C, 0x00000011, 0x00000718, 0x00000A0D, 0x00000A0A, 0x0004002B,
0x0000000B, 0x00000AFA, 0x00000050, 0x0005002C, 0x00000011, 0x00000A9F,
0x00000AFA, 0x00000A3A, 0x0004002B, 0x0000000C, 0x00000A1A, 0x00000005,
0x0004002B, 0x0000000B, 0x00000A19, 0x00000005, 0x0004002B, 0x0000000B,
0x00000A1F, 0x00000007, 0x0004002B, 0x0000000C, 0x00000A20, 0x00000007,
0x0004002B, 0x0000000C, 0x00000A35, 0x0000000E, 0x0004002B, 0x0000000C,
0x00000A11, 0x00000002, 0x0004002B, 0x0000000C, 0x000009DB, 0xFFFFFFF0,
0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C,
0x00000A38, 0x0000000F, 0x0004002B, 0x0000000C, 0x00000A17, 0x00000004,
0x0004002B, 0x0000000C, 0x0000040B, 0xFFFFFE00, 0x0004002B, 0x0000000C,
0x00000A14, 0x00000003, 0x0004002B, 0x0000000C, 0x00000A3B, 0x00000010,
0x0004002B, 0x0000000C, 0x00000388, 0x000001C0, 0x0004002B, 0x0000000C,
0x00000A23, 0x00000008, 0x0004002B, 0x0000000C, 0x00000A1D, 0x00000006,
0x0004002B, 0x0000000C, 0x00000AC8, 0x0000003F, 0x0004002B, 0x0000000C,
0x0000078B, 0x0FFFFFFF, 0x0004002B, 0x0000000C, 0x00000A05, 0xFFFFFFFE,
0x0007001E, 0x0000040C, 0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B,
0x0000000B, 0x00040020, 0x00000688, 0x00000009, 0x0000040C, 0x0004003B,
0x00000688, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B,
0x0000000B, 0x00000AFB, 0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A55,
0x00000019, 0x0004002B, 0x0000000B, 0x00000A37, 0x0000000F, 0x0005002C,
0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011,
0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B, 0x00000A81,
0x000007FF, 0x0004002B, 0x0000000B, 0x00000926, 0x01000000, 0x0004002B,
0x0000000B, 0x00000A46, 0x00000014, 0x0004002B, 0x0000000B, 0x00000A52,
0x00000018, 0x0005002C, 0x00000011, 0x000008E3, 0x00000A46, 0x00000A52,
0x0004002B, 0x0000000B, 0x00000A5E, 0x0000001C, 0x00040017, 0x00000014,
0x0000000B, 0x00000003, 0x0004002B, 0x0000000B, 0x0000068D, 0xFFFF0000,
0x0004002B, 0x0000000B, 0x000001C1, 0x0000FFFF, 0x00040020, 0x00000291,
0x00000001, 0x00000014, 0x0004003B, 0x00000291, 0x00000F48, 0x00000001,
0x0005002C, 0x00000011, 0x00000721, 0x00000A10, 0x00000A0A, 0x0003002A,
0x00000009, 0x00000787, 0x0003001D, 0x000007DC, 0x00000017, 0x0003001E,
0x000007B4, 0x000007DC, 0x00040020, 0x00000A32, 0x00000002, 0x000007B4,
0x0004003B, 0x00000A32, 0x00000CC7, 0x00000002, 0x00040020, 0x00000294,
0x00000002, 0x00000017, 0x0003001D, 0x000007DD, 0x00000017, 0x0003001E,
0x000007B5, 0x000007DD, 0x00040020, 0x00000A33, 0x00000002, 0x000007B5,
0x0004003B, 0x00000A33, 0x00001592, 0x00000002, 0x0006002C, 0x00000014,
0x00000AC7, 0x00000A22, 0x00000A22, 0x00000A0D, 0x0005002C, 0x00000011,
0x0000074E, 0x00000A13, 0x00000A13, 0x0005002C, 0x00000011, 0x0000084A,
0x00000A37, 0x00000A37, 0x0004002B, 0x0000000B, 0x00000A25, 0x00000009,
0x0007002C, 0x00000017, 0x00000755, 0x0000068D, 0x0000068D, 0x0000068D,
0x0000068D, 0x0007002C, 0x00000017, 0x00000352, 0x000001C1, 0x000001C1,
0x000001C1, 0x000001C1, 0x0007002C, 0x00000017, 0x000009CE, 0x000008A6,
0x000008A6, 0x000008A6, 0x000008A6, 0x0007002C, 0x00000017, 0x0000013D,
0x00000A22, 0x00000A22, 0x00000A22, 0x00000A22, 0x0007002C, 0x00000017,
0x0000072E, 0x000005FD, 0x000005FD, 0x000005FD, 0x000005FD, 0x0007002C,
0x00000017, 0x000002ED, 0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00000A3A,
0x00050036, 0x00000008, 0x0000161F, 0x00000000, 0x00000502, 0x000200F8,
0x00003B06, 0x000300F7, 0x00004C7A, 0x00000000, 0x000300FB, 0x00000A0A,
0x00002E68, 0x000200F8, 0x00002E68, 0x00050041, 0x00000288, 0x000056E5,
0x0000118F, 0x00000A0B, 0x0004003D, 0x0000000B, 0x00003D0B, 0x000056E5,
0x00050041, 0x00000288, 0x000058AC, 0x0000118F, 0x00000A0E, 0x0004003D,
0x0000000B, 0x00005158, 0x000058AC, 0x000500C7, 0x0000000B, 0x00005051,
0x00003D0B, 0x00000A44, 0x000500C2, 0x0000000B, 0x00004E0A, 0x00003D0B,
0x00000A28, 0x000500C7, 0x0000000B, 0x0000217E, 0x00004E0A, 0x00000A13,
0x000500C2, 0x0000000B, 0x0000520A, 0x00003D0B, 0x00000A31, 0x000500C7,
0x0000000B, 0x0000217F, 0x0000520A, 0x00000AFB, 0x000500C2, 0x0000000B,
0x00004994, 0x00003D0B, 0x00000A55, 0x000500C7, 0x0000000B, 0x000023AA,
0x00004994, 0x00000A37, 0x00050050, 0x00000011, 0x0000226E, 0x00005158,
0x00005158, 0x000500C2, 0x00000011, 0x00002289, 0x0000226E, 0x0000073F,
0x000500C4, 0x00000011, 0x000057EB, 0x00000724, 0x00000740, 0x00050082,
0x00000011, 0x000048B0, 0x000057EB, 0x00000724, 0x000500C7, 0x00000011,
0x00004937, 0x00002289, 0x000048B0, 0x000500C4, 0x00000011, 0x00005784,
0x00004937, 0x0000074E, 0x00050084, 0x00000011, 0x000059EB, 0x00005784,
0x00000724, 0x000500C2, 0x0000000B, 0x00003213, 0x00005158, 0x00000A19,
0x000500C7, 0x0000000B, 0x00003F4C, 0x00003213, 0x00000A81, 0x00050041,
0x00000288, 0x0000492C, 0x0000118F, 0x00000A11, 0x0004003D, 0x0000000B,
0x00005EAC, 0x0000492C, 0x00050041, 0x00000288, 0x000058AD, 0x0000118F,
0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7, 0x000058AD, 0x000500C7,
0x0000000B, 0x00004ADC, 0x00005EAC, 0x00000A1F, 0x000500C7, 0x0000000B,
0x000055EF, 0x00005EAC, 0x00000A22, 0x000500AB, 0x00000009, 0x0000500F,
0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B, 0x000028A2, 0x00005EAC,
0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD, 0x000028A2, 0x00000A1F,
0x000500C7, 0x0000000B, 0x00005A4E, 0x00005EAC, 0x00000926, 0x000500AB,
0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A, 0x000500C7, 0x0000000B,
0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4, 0x0000000B, 0x00003DA7,
0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B, 0x0000583F, 0x000051B7,
0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE, 0x0000583F, 0x00000A44,
0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE, 0x00000A19, 0x00050050,
0x00000011, 0x000028B6, 0x000051B7, 0x000051B7, 0x000500C2, 0x00000011,
0x00002891, 0x000028B6, 0x000008E3, 0x000500C7, 0x00000011, 0x00005B53,
0x00002891, 0x0000084A, 0x000500C4, 0x00000011, 0x00003F4F, 0x00005B53,
0x0000074E, 0x00050084, 0x00000011, 0x000059EC, 0x00003F4F, 0x00000724,
0x000500C2, 0x0000000B, 0x00003214, 0x000051B7, 0x00000A5E, 0x000500C7,
0x0000000B, 0x00003F4D, 0x00003214, 0x00000A1F, 0x00050041, 0x00000288,
0x000048E0, 0x0000118F, 0x00000A17, 0x0004003D, 0x0000000B, 0x000062B6,
0x000048E0, 0x0004003D, 0x00000014, 0x0000374F, 0x00000F48, 0x0007004F,
0x00000011, 0x00003180, 0x0000374F, 0x0000374F, 0x00000000, 0x00000001,
0x000500C4, 0x00000011, 0x00002EF9, 0x00003180, 0x00000721, 0x00050051,
0x0000000B, 0x00001DD8, 0x00002EF9, 0x00000000, 0x000500C4, 0x0000000B,
0x00002D8A, 0x00003F4C, 0x00000A13, 0x000500AE, 0x00000009, 0x00003C13,
0x00001DD8, 0x00002D8A, 0x000300F7, 0x000031D3, 0x00000002, 0x000400FA,
0x00003C13, 0x000055E8, 0x000031D3, 0x000200F8, 0x000055E8, 0x000200F9,
0x00004C7A, 0x000200F8, 0x000031D3, 0x00050051, 0x0000000B, 0x00001CAC,
0x00002EF9, 0x00000001, 0x0007000C, 0x0000000B, 0x00001F38, 0x00000001,
0x00000029, 0x00001CAC, 0x00000A0A, 0x00050050, 0x00000011, 0x000051EF,
0x00001DD8, 0x00001F38, 0x00050080, 0x00000011, 0x0000522C, 0x000051EF,
0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB, 0x00003F4D, 0x00000A13,
0x000300F7, 0x00005CE0, 0x00000000, 0x000400FA, 0x00003ECB, 0x00002AEE,
0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA, 0x00000009, 0x000034FE,
0x00003F4D, 0x00000A19, 0x000600A9, 0x0000000B, 0x000020F6, 0x000034FE,
0x00000A10, 0x00000A0A, 0x000200F9, 0x00005CE0, 0x000200F8, 0x00002AEE,
0x000200F9, 0x00005CE0, 0x000200F8, 0x00005CE0, 0x000700F5, 0x0000000B,
0x00004B64, 0x00003F4D, 0x00002AEE, 0x000020F6, 0x00003AEF, 0x00050050,
0x00000011, 0x000041BE, 0x0000217E, 0x0000217E, 0x000500AE, 0x0000000F,
0x00002E19, 0x000041BE, 0x0000072D, 0x000600A9, 0x00000011, 0x00004BB5,
0x00002E19, 0x00000724, 0x0000070F, 0x000500C4, 0x00000011, 0x00002AEA,
0x0000522C, 0x00004BB5, 0x00050050, 0x00000011, 0x0000605D, 0x00004B64,
0x00004B64, 0x000500C2, 0x00000011, 0x00002385, 0x0000605D, 0x00000718,
0x000500C7, 0x00000011, 0x00003EC8, 0x00002385, 0x00000724, 0x00050080,
0x00000011, 0x00004F30, 0x00002AEA, 0x00003EC8, 0x00050084, 0x00000011,
0x00005299, 0x00000A9F, 0x00000724, 0x000500C2, 0x00000011, 0x00003985,
0x00005299, 0x00000718, 0x00050086, 0x00000011, 0x00004D57, 0x00004F30,
0x00003985, 0x00050051, 0x0000000B, 0x00004FA6, 0x00004D57, 0x00000001,
0x00050084, 0x0000000B, 0x00002B26, 0x00004FA6, 0x00005051, 0x00050051,
0x0000000B, 0x00006059, 0x00004D57, 0x00000000, 0x00050080, 0x0000000B,
0x00005420, 0x00002B26, 0x00006059, 0x00050080, 0x0000000B, 0x00002226,
0x0000217F, 0x00005420, 0x00050084, 0x00000011, 0x00005768, 0x00004D57,
0x00003985, 0x00050082, 0x00000011, 0x000050EB, 0x00004F30, 0x00005768,
0x00050051, 0x0000000B, 0x00001C87, 0x00005299, 0x00000000, 0x00050051,
0x0000000B, 0x00005962, 0x00005299, 0x00000001, 0x00050084, 0x0000000B,
0x00003372, 0x00001C87, 0x00005962, 0x00050084, 0x0000000B, 0x000038D7,
0x00002226, 0x00003372, 0x00050051, 0x0000000B, 0x00001A95, 0x000050EB,
0x00000001, 0x00050051, 0x0000000B, 0x00005BE6, 0x00003985, 0x00000000,
0x00050084, 0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6, 0x00050051,
0x0000000B, 0x00001AE6, 0x000050EB, 0x00000000, 0x00050080, 0x0000000B,
0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B, 0x00004AFF,
0x000025E0, 0x00000A0D, 0x00050080, 0x0000000B, 0x0000187D, 0x000038D7,
0x00004AFF, 0x000500C2, 0x0000000B, 0x00005EF3, 0x0000187D, 0x00000A10,
0x00060041, 0x00000294, 0x00004C91, 0x00000CC7, 0x00000A0B, 0x00005EF3,
0x0004003D, 0x00000017, 0x00003141, 0x00004C91, 0x00050080, 0x0000000B,
0x00002DA7, 0x00005EF3, 0x00000A0D, 0x00060041, 0x00000294, 0x00001C1D,
0x00000AFA, 0x00000A3A, 0x0004002B, 0x0000000B, 0x00000A84, 0x00000800,
0x0004002B, 0x0000000C, 0x00000A1A, 0x00000005, 0x0004002B, 0x0000000B,
0x00000A19, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A1F, 0x00000007,
0x0004002B, 0x0000000C, 0x00000A20, 0x00000007, 0x0004002B, 0x0000000C,
0x00000A35, 0x0000000E, 0x0004002B, 0x0000000C, 0x00000A11, 0x00000002,
0x0004002B, 0x0000000C, 0x000009DB, 0xFFFFFFF0, 0x0004002B, 0x0000000C,
0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C, 0x00000A38, 0x0000000F,
0x0004002B, 0x0000000C, 0x00000A17, 0x00000004, 0x0004002B, 0x0000000C,
0x0000040B, 0xFFFFFE00, 0x0004002B, 0x0000000C, 0x00000A14, 0x00000003,
0x0004002B, 0x0000000C, 0x00000A3B, 0x00000010, 0x0004002B, 0x0000000C,
0x00000388, 0x000001C0, 0x0004002B, 0x0000000C, 0x00000A23, 0x00000008,
0x0004002B, 0x0000000C, 0x00000A1D, 0x00000006, 0x0004002B, 0x0000000C,
0x00000AC8, 0x0000003F, 0x0004002B, 0x0000000C, 0x0000078B, 0x0FFFFFFF,
0x0004002B, 0x0000000C, 0x00000A05, 0xFFFFFFFE, 0x0007001E, 0x0000040C,
0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x00040020,
0x00000688, 0x00000009, 0x0000040C, 0x0004003B, 0x00000688, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000B, 0x00000A44,
0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81,
0x000007FF, 0x0004002B, 0x0000000B, 0x00000A52, 0x00000018, 0x0004002B,
0x0000000B, 0x00000A37, 0x0000000F, 0x0004002B, 0x0000000B, 0x00000A5E,
0x0000001C, 0x0005002C, 0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16,
0x0005002C, 0x00000011, 0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B,
0x0000000B, 0x00000926, 0x01000000, 0x0004002B, 0x0000000B, 0x00000A46,
0x00000014, 0x0005002C, 0x00000011, 0x000008E3, 0x00000A46, 0x00000A52,
0x00040017, 0x00000014, 0x0000000B, 0x00000003, 0x0004002B, 0x0000000B,
0x0000068D, 0xFFFF0000, 0x0004002B, 0x0000000B, 0x000001C1, 0x0000FFFF,
0x00040020, 0x00000291, 0x00000001, 0x00000014, 0x0004003B, 0x00000291,
0x00000F48, 0x00000001, 0x0005002C, 0x00000011, 0x00000721, 0x00000A10,
0x00000A0A, 0x0003002A, 0x00000009, 0x00000787, 0x0003001D, 0x000007DC,
0x00000017, 0x0003001E, 0x000007B4, 0x000007DC, 0x00040020, 0x00000A32,
0x00000002, 0x000007B4, 0x0004003B, 0x00000A32, 0x00000CC7, 0x00000002,
0x00040020, 0x00000294, 0x00000002, 0x00000017, 0x0003001D, 0x000007DD,
0x00000017, 0x0003001E, 0x000007B5, 0x000007DD, 0x00040020, 0x00000A33,
0x00000002, 0x000007B5, 0x0004003B, 0x00000A33, 0x00001592, 0x00000002,
0x0006002C, 0x00000014, 0x00000AC7, 0x00000A22, 0x00000A22, 0x00000A0D,
0x0005002C, 0x00000011, 0x0000074E, 0x00000A13, 0x00000A13, 0x0005002C,
0x00000011, 0x0000084A, 0x00000A37, 0x00000A37, 0x0004002B, 0x0000000B,
0x00000A25, 0x00000009, 0x0007002C, 0x00000017, 0x00000755, 0x0000068D,
0x0000068D, 0x0000068D, 0x0000068D, 0x0007002C, 0x00000017, 0x00000352,
0x000001C1, 0x000001C1, 0x000001C1, 0x000001C1, 0x0007002C, 0x00000017,
0x000009CE, 0x000008A6, 0x000008A6, 0x000008A6, 0x000008A6, 0x0007002C,
0x00000017, 0x0000013D, 0x00000A22, 0x00000A22, 0x00000A22, 0x00000A22,
0x0007002C, 0x00000017, 0x0000072E, 0x000005FD, 0x000005FD, 0x000005FD,
0x000005FD, 0x0007002C, 0x00000017, 0x000002ED, 0x00000A3A, 0x00000A3A,
0x00000A3A, 0x00000A3A, 0x00050036, 0x00000008, 0x0000161F, 0x00000000,
0x00000502, 0x000200F8, 0x00003B06, 0x000300F7, 0x00004C7A, 0x00000000,
0x000300FB, 0x00000A0A, 0x00002E68, 0x000200F8, 0x00002E68, 0x00050041,
0x00000288, 0x000056E5, 0x0000118F, 0x00000A0B, 0x0004003D, 0x0000000B,
0x00003D0B, 0x000056E5, 0x00050041, 0x00000288, 0x000058AC, 0x0000118F,
0x00000A0E, 0x0004003D, 0x0000000B, 0x00005158, 0x000058AC, 0x000500C7,
0x0000000B, 0x00005051, 0x00003D0B, 0x00000A44, 0x000500C2, 0x0000000B,
0x00004E0A, 0x00003D0B, 0x00000A28, 0x000500C7, 0x0000000B, 0x0000217E,
0x00004E0A, 0x00000A13, 0x000500C2, 0x0000000B, 0x0000520A, 0x00003D0B,
0x00000A31, 0x000500C7, 0x0000000B, 0x0000217F, 0x0000520A, 0x00000A81,
0x000500C2, 0x0000000B, 0x00004994, 0x00003D0B, 0x00000A52, 0x000500C7,
0x0000000B, 0x000023AA, 0x00004994, 0x00000A37, 0x00050050, 0x00000011,
0x0000226E, 0x00005158, 0x00005158, 0x000500C2, 0x00000011, 0x00002289,
0x0000226E, 0x0000073F, 0x000500C4, 0x00000011, 0x000057EB, 0x00000724,
0x00000740, 0x00050082, 0x00000011, 0x000048B0, 0x000057EB, 0x00000724,
0x000500C7, 0x00000011, 0x00004937, 0x00002289, 0x000048B0, 0x000500C4,
0x00000011, 0x00005784, 0x00004937, 0x0000074E, 0x00050084, 0x00000011,
0x000059EB, 0x00005784, 0x00000724, 0x000500C2, 0x0000000B, 0x00003213,
0x00005158, 0x00000A19, 0x000500C7, 0x0000000B, 0x00003F4C, 0x00003213,
0x00000A81, 0x00050041, 0x00000288, 0x0000492C, 0x0000118F, 0x00000A11,
0x0004003D, 0x0000000B, 0x00005EAC, 0x0000492C, 0x00050041, 0x00000288,
0x000058AD, 0x0000118F, 0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7,
0x000058AD, 0x000500C7, 0x0000000B, 0x00004ADC, 0x00005EAC, 0x00000A1F,
0x000500C7, 0x0000000B, 0x000055EF, 0x00005EAC, 0x00000A22, 0x000500AB,
0x00000009, 0x0000500F, 0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B,
0x000028A2, 0x00005EAC, 0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD,
0x000028A2, 0x00000A1F, 0x000500C7, 0x0000000B, 0x00005A4E, 0x00005EAC,
0x00000926, 0x000500AB, 0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A,
0x000500C7, 0x0000000B, 0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4,
0x0000000B, 0x00003DA7, 0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B,
0x0000583F, 0x000051B7, 0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE,
0x0000583F, 0x00000A44, 0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE,
0x00000A19, 0x00050050, 0x00000011, 0x000028B6, 0x000051B7, 0x000051B7,
0x000500C2, 0x00000011, 0x00002891, 0x000028B6, 0x000008E3, 0x000500C7,
0x00000011, 0x00005B53, 0x00002891, 0x0000084A, 0x000500C4, 0x00000011,
0x00003F4F, 0x00005B53, 0x0000074E, 0x00050084, 0x00000011, 0x000059EC,
0x00003F4F, 0x00000724, 0x000500C2, 0x0000000B, 0x00003214, 0x000051B7,
0x00000A5E, 0x000500C7, 0x0000000B, 0x00003F4D, 0x00003214, 0x00000A1F,
0x00050041, 0x00000288, 0x000048E0, 0x0000118F, 0x00000A17, 0x0004003D,
0x0000000B, 0x000062B6, 0x000048E0, 0x0004003D, 0x00000014, 0x0000374F,
0x00000F48, 0x0007004F, 0x00000011, 0x00003180, 0x0000374F, 0x0000374F,
0x00000000, 0x00000001, 0x000500C4, 0x00000011, 0x00002EF9, 0x00003180,
0x00000721, 0x00050051, 0x0000000B, 0x00001DD8, 0x00002EF9, 0x00000000,
0x000500C4, 0x0000000B, 0x00002D8A, 0x00003F4C, 0x00000A13, 0x000500AE,
0x00000009, 0x00003C13, 0x00001DD8, 0x00002D8A, 0x000300F7, 0x000031D3,
0x00000002, 0x000400FA, 0x00003C13, 0x000055E8, 0x000031D3, 0x000200F8,
0x000055E8, 0x000200F9, 0x00004C7A, 0x000200F8, 0x000031D3, 0x00050051,
0x0000000B, 0x00001CAC, 0x00002EF9, 0x00000001, 0x0007000C, 0x0000000B,
0x00001F38, 0x00000001, 0x00000029, 0x00001CAC, 0x00000A0A, 0x00050050,
0x00000011, 0x000051EF, 0x00001DD8, 0x00001F38, 0x00050080, 0x00000011,
0x0000522C, 0x000051EF, 0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB,
0x00003F4D, 0x00000A13, 0x000300F7, 0x00005CE0, 0x00000000, 0x000400FA,
0x00003ECB, 0x00002AEE, 0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA,
0x00000009, 0x000034FE, 0x00003F4D, 0x00000A19, 0x000600A9, 0x0000000B,
0x000020F6, 0x000034FE, 0x00000A10, 0x00000A0A, 0x000200F9, 0x00005CE0,
0x000200F8, 0x00002AEE, 0x000200F9, 0x00005CE0, 0x000200F8, 0x00005CE0,
0x000700F5, 0x0000000B, 0x00004B64, 0x00003F4D, 0x00002AEE, 0x000020F6,
0x00003AEF, 0x00050050, 0x00000011, 0x000041BE, 0x0000217E, 0x0000217E,
0x000500AE, 0x0000000F, 0x00002E19, 0x000041BE, 0x0000072D, 0x000600A9,
0x00000011, 0x00004BB5, 0x00002E19, 0x00000724, 0x0000070F, 0x000500C4,
0x00000011, 0x00002AEA, 0x0000522C, 0x00004BB5, 0x00050050, 0x00000011,
0x0000605D, 0x00004B64, 0x00004B64, 0x000500C2, 0x00000011, 0x00002385,
0x0000605D, 0x00000718, 0x000500C7, 0x00000011, 0x00003EC8, 0x00002385,
0x00000724, 0x00050080, 0x00000011, 0x00004F30, 0x00002AEA, 0x00003EC8,
0x00050084, 0x00000011, 0x00005299, 0x00000A9F, 0x00000724, 0x000500C2,
0x00000011, 0x00003985, 0x00005299, 0x00000718, 0x00050086, 0x00000011,
0x00004D57, 0x00004F30, 0x00003985, 0x00050051, 0x0000000B, 0x00004FA6,
0x00004D57, 0x00000001, 0x00050084, 0x0000000B, 0x00002B26, 0x00004FA6,
0x00005051, 0x00050051, 0x0000000B, 0x00006059, 0x00004D57, 0x00000000,
0x00050080, 0x0000000B, 0x00005420, 0x00002B26, 0x00006059, 0x00050080,
0x0000000B, 0x00002226, 0x0000217F, 0x00005420, 0x00050084, 0x00000011,
0x00005768, 0x00004D57, 0x00003985, 0x00050082, 0x00000011, 0x000050EB,
0x00004F30, 0x00005768, 0x00050051, 0x0000000B, 0x00001C87, 0x00005299,
0x00000000, 0x00050051, 0x0000000B, 0x00005962, 0x00005299, 0x00000001,
0x00050084, 0x0000000B, 0x00003372, 0x00001C87, 0x00005962, 0x00050084,
0x0000000B, 0x000038D7, 0x00002226, 0x00003372, 0x00050051, 0x0000000B,
0x00001A95, 0x000050EB, 0x00000001, 0x00050051, 0x0000000B, 0x00005BE6,
0x00003985, 0x00000000, 0x00050084, 0x0000000B, 0x00005966, 0x00001A95,
0x00005BE6, 0x00050051, 0x0000000B, 0x00001AE6, 0x000050EB, 0x00000000,
0x00050080, 0x0000000B, 0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4,
0x0000000B, 0x00004665, 0x000025E0, 0x00000A0D, 0x00050080, 0x0000000B,
0x000047BB, 0x000038D7, 0x00004665, 0x00050084, 0x0000000B, 0x0000363C,
0x00003372, 0x00000A84, 0x00050089, 0x0000000B, 0x00004D53, 0x000047BB,
0x0000363C, 0x000500C2, 0x0000000B, 0x0000552E, 0x00004D53, 0x00000A10,
0x00060041, 0x00000294, 0x00004316, 0x00000CC7, 0x00000A0B, 0x0000552E,
0x0004003D, 0x00000017, 0x00003141, 0x00004316, 0x00050080, 0x0000000B,
0x00002DA7, 0x0000552E, 0x00000A0D, 0x00060041, 0x00000294, 0x00001C1D,
0x00000CC7, 0x00000A0B, 0x00002DA7, 0x0004003D, 0x00000017, 0x000047B8,
0x00001C1D, 0x000500AA, 0x00000009, 0x00003C70, 0x00001DD8, 0x00000A0A,
0x000600A9, 0x00000009, 0x00003CF3, 0x00003C70, 0x00000787, 0x00003C70,

View File

@ -55,6 +55,7 @@
%1816 = OpConstantComposite %v2uint %uint_1 %uint_0
%uint_80 = OpConstant %uint 80
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%uint_2048 = OpConstant %uint 2048
%int_5 = OpConstant %int 5
%uint_5 = OpConstant %uint 5
%uint_7 = OpConstant %uint 7
@ -83,20 +84,18 @@
%uint_1023 = OpConstant %uint 1023
%uint_10 = OpConstant %uint 10
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_25 = OpConstant %uint 25
%uint_2047 = OpConstant %uint 2047
%uint_24 = OpConstant %uint 24
%uint_15 = OpConstant %uint 15
%uint_28 = OpConstant %uint 28
%uint_19 = OpConstant %uint 19
%2179 = OpConstantComposite %v2uint %uint_16 %uint_19
%uint_1073741824 = OpConstant %uint 1073741824
%uint_536870912 = OpConstant %uint 536870912
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_2047 = OpConstant %uint 2047
%uint_16777216 = OpConstant %uint 16777216
%uint_20 = OpConstant %uint 20
%uint_24 = OpConstant %uint 24
%2275 = OpConstantComposite %v2uint %uint_20 %uint_24
%uint_28 = OpConstant %uint 28
%uint_4294901760 = OpConstant %uint 4294901760
%uint_65535 = OpConstant %uint 65535
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
@ -135,13 +134,13 @@
%19978 = OpShiftRightLogical %uint %15627 %uint_10
%8574 = OpBitwiseAnd %uint %19978 %uint_3
%21002 = OpShiftRightLogical %uint %15627 %uint_13
%8575 = OpBitwiseAnd %uint %21002 %uint_4095
%18836 = OpShiftRightLogical %uint %15627 %uint_25
%8575 = OpBitwiseAnd %uint %21002 %uint_2047
%18836 = OpShiftRightLogical %uint %15627 %uint_24
%9130 = OpBitwiseAnd %uint %18836 %uint_15
%8871 = OpCompositeConstruct %v2uint %20824 %20824
%9633 = OpShiftRightLogical %v2uint %8871 %2179
%23601 = OpBitwiseAnd %v2uint %9633 %1954
%24030 = OpBitwiseAnd %uint %15627 %uint_1073741824
%24030 = OpBitwiseAnd %uint %15627 %uint_536870912
%12295 = OpINotEqual %bool %24030 %uint_0
OpSelectionMerge %14676 None
OpBranchConditional %12295 %16739 %21992
@ -239,12 +238,14 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %20715 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_1
%6269 = OpIAdd %uint %14551 %19199
%24307 = OpShiftRightLogical %uint %6269 %uint_2
%19601 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %24307
%12609 = OpLoad %v4uint %19601
%11687 = OpIAdd %uint %24307 %uint_1
%18021 = OpShiftLeftLogical %uint %9696 %uint_1
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%19795 = OpUMod %uint %18363 %13884
%21806 = OpShiftRightLogical %uint %19795 %uint_2
%17174 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %21806
%12609 = OpLoad %v4uint %17174
%11687 = OpIAdd %uint %21806 %uint_1
%7197 = OpAccessChain %_ptr_Uniform_v4uint %3271 %int_0 %11687
%19842 = OpLoad %v4uint %7197
%21106 = OpIEqual %bool %7640 %uint_0
@ -592,149 +593,150 @@ const uint32_t resolve_fast_64bpp_1x2xmsaa_scaled_cs[] = {
0x0005002C, 0x00000011, 0x00000724, 0x00000A0D, 0x00000A0D, 0x0005002C,
0x00000011, 0x00000718, 0x00000A0D, 0x00000A0A, 0x0004002B, 0x0000000B,
0x00000AFA, 0x00000050, 0x0005002C, 0x00000011, 0x00000A9F, 0x00000AFA,
0x00000A3A, 0x0004002B, 0x0000000C, 0x00000A1A, 0x00000005, 0x0004002B,
0x0000000B, 0x00000A19, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A1F,
0x00000007, 0x0004002B, 0x0000000C, 0x00000A20, 0x00000007, 0x0004002B,
0x0000000C, 0x00000A35, 0x0000000E, 0x0004002B, 0x0000000C, 0x00000A11,
0x00000002, 0x0004002B, 0x0000000C, 0x000009DB, 0xFFFFFFF0, 0x0004002B,
0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C, 0x00000A38,
0x0000000F, 0x0004002B, 0x0000000C, 0x00000A17, 0x00000004, 0x0004002B,
0x0000000C, 0x0000040B, 0xFFFFFE00, 0x0004002B, 0x0000000C, 0x00000A14,
0x00000003, 0x0004002B, 0x0000000C, 0x00000A3B, 0x00000010, 0x0004002B,
0x0000000C, 0x00000388, 0x000001C0, 0x0004002B, 0x0000000C, 0x00000A23,
0x00000008, 0x0004002B, 0x0000000C, 0x00000A1D, 0x00000006, 0x0004002B,
0x0000000C, 0x00000AC8, 0x0000003F, 0x0004002B, 0x0000000C, 0x0000078B,
0x0FFFFFFF, 0x0004002B, 0x0000000C, 0x00000A05, 0xFFFFFFFE, 0x0004002B,
0x0000000B, 0x00000A6A, 0x00000020, 0x0006001E, 0x000003F9, 0x0000000B,
0x0000000B, 0x0000000B, 0x0000000B, 0x00040020, 0x00000676, 0x00000009,
0x000003F9, 0x0004003B, 0x00000676, 0x0000118F, 0x00000009, 0x0004002B,
0x0000000C, 0x00000A0B, 0x00000000, 0x00040020, 0x00000288, 0x00000009,
0x0000000B, 0x0004002B, 0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B,
0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B, 0x0000000B, 0x00000A31,
0x0000000D, 0x0004002B, 0x0000000B, 0x00000AFB, 0x00000FFF, 0x0004002B,
0x0000000B, 0x00000A55, 0x00000019, 0x0004002B, 0x0000000B, 0x00000A37,
0x0000000F, 0x0004002B, 0x0000000B, 0x00000A43, 0x00000013, 0x0005002C,
0x00000011, 0x00000883, 0x00000A3A, 0x00000A43, 0x0004002B, 0x0000000B,
0x00000018, 0x40000000, 0x0005002C, 0x00000011, 0x0000073F, 0x00000A0A,
0x00000A16, 0x0005002C, 0x00000011, 0x00000740, 0x00000A16, 0x00000A0D,
0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B, 0x0000000B,
0x00000926, 0x01000000, 0x0004002B, 0x0000000B, 0x00000A46, 0x00000014,
0x0004002B, 0x0000000B, 0x00000A52, 0x00000018, 0x0005002C, 0x00000011,
0x000008E3, 0x00000A46, 0x00000A52, 0x0004002B, 0x0000000B, 0x00000A5E,
0x0000001C, 0x0004002B, 0x0000000B, 0x0000068D, 0xFFFF0000, 0x0004002B,
0x0000000B, 0x000001C1, 0x0000FFFF, 0x00040020, 0x00000291, 0x00000001,
0x00000014, 0x0004003B, 0x00000291, 0x00000F48, 0x00000001, 0x0005002C,
0x00000011, 0x00000721, 0x00000A10, 0x00000A0A, 0x0003001D, 0x000007DC,
0x00000017, 0x0003001E, 0x000007B4, 0x000007DC, 0x00040020, 0x00000A32,
0x00000002, 0x000007B4, 0x0004003B, 0x00000A32, 0x00000CC7, 0x00000002,
0x00040020, 0x00000294, 0x00000002, 0x00000017, 0x0003001D, 0x000007DD,
0x00000017, 0x0003001E, 0x000007B5, 0x000007DD, 0x00040020, 0x00000A33,
0x00000002, 0x000007B5, 0x0004003B, 0x00000A33, 0x00001592, 0x00000002,
0x0006002C, 0x00000014, 0x00000AC7, 0x00000A22, 0x00000A22, 0x00000A0D,
0x0005002C, 0x00000011, 0x000007A2, 0x00000A1F, 0x00000A1F, 0x0005002C,
0x00000011, 0x0000074E, 0x00000A13, 0x00000A13, 0x0005002C, 0x00000011,
0x0000084A, 0x00000A37, 0x00000A37, 0x0004002B, 0x0000000B, 0x00000A25,
0x00000009, 0x0007002C, 0x00000017, 0x00000755, 0x0000068D, 0x0000068D,
0x0000068D, 0x0000068D, 0x0007002C, 0x00000017, 0x00000352, 0x000001C1,
0x000001C1, 0x000001C1, 0x000001C1, 0x0007002C, 0x00000017, 0x000009CE,
0x000008A6, 0x000008A6, 0x000008A6, 0x000008A6, 0x0007002C, 0x00000017,
0x0000013D, 0x00000A22, 0x00000A22, 0x00000A22, 0x00000A22, 0x0007002C,
0x00000017, 0x0000072E, 0x000005FD, 0x000005FD, 0x000005FD, 0x000005FD,
0x0007002C, 0x00000017, 0x000002ED, 0x00000A3A, 0x00000A3A, 0x00000A3A,
0x00000A3A, 0x00050036, 0x00000008, 0x0000161F, 0x00000000, 0x00000502,
0x000200F8, 0x00003B06, 0x000300F7, 0x00004C7A, 0x00000000, 0x000300FB,
0x00000A0A, 0x00002E68, 0x000200F8, 0x00002E68, 0x00050041, 0x00000288,
0x000056E5, 0x0000118F, 0x00000A0B, 0x0004003D, 0x0000000B, 0x00003D0B,
0x000056E5, 0x00050041, 0x00000288, 0x000058AC, 0x0000118F, 0x00000A0E,
0x0004003D, 0x0000000B, 0x00005158, 0x000058AC, 0x000500C7, 0x0000000B,
0x00005051, 0x00003D0B, 0x00000A44, 0x000500C2, 0x0000000B, 0x00004E0A,
0x00003D0B, 0x00000A28, 0x000500C7, 0x0000000B, 0x0000217E, 0x00004E0A,
0x00000A13, 0x000500C2, 0x0000000B, 0x0000520A, 0x00003D0B, 0x00000A31,
0x000500C7, 0x0000000B, 0x0000217F, 0x0000520A, 0x00000AFB, 0x000500C2,
0x0000000B, 0x00004994, 0x00003D0B, 0x00000A55, 0x000500C7, 0x0000000B,
0x000023AA, 0x00004994, 0x00000A37, 0x00050050, 0x00000011, 0x000022A7,
0x00005158, 0x00005158, 0x000500C2, 0x00000011, 0x000025A1, 0x000022A7,
0x00000883, 0x000500C7, 0x00000011, 0x00005C31, 0x000025A1, 0x000007A2,
0x000500C7, 0x0000000B, 0x00005DDE, 0x00003D0B, 0x00000018, 0x000500AB,
0x00000009, 0x00003007, 0x00005DDE, 0x00000A0A, 0x000300F7, 0x00003954,
0x00000000, 0x000400FA, 0x00003007, 0x00004163, 0x000055E8, 0x000200F8,
0x000055E8, 0x000200F9, 0x00003954, 0x000200F8, 0x00004163, 0x000500C2,
0x00000011, 0x00003BAE, 0x00005C31, 0x00000724, 0x000200F9, 0x00003954,
0x000200F8, 0x00003954, 0x000700F5, 0x00000011, 0x00004A7B, 0x00003BAE,
0x00004163, 0x0000070F, 0x000055E8, 0x000500C2, 0x00000011, 0x0000189F,
0x000022A7, 0x0000073F, 0x000500C4, 0x00000011, 0x00002A91, 0x00000724,
0x00000740, 0x00050082, 0x00000011, 0x000048B0, 0x00002A91, 0x00000724,
0x000500C7, 0x00000011, 0x00004937, 0x0000189F, 0x000048B0, 0x000500C4,
0x00000011, 0x00005784, 0x00004937, 0x0000074E, 0x00050084, 0x00000011,
0x000059EB, 0x00005784, 0x00005C31, 0x000500C2, 0x0000000B, 0x00003343,
0x00005158, 0x00000A19, 0x000500C7, 0x0000000B, 0x000039C1, 0x00003343,
0x00000A81, 0x00050051, 0x0000000B, 0x0000229A, 0x00005C31, 0x00000000,
0x00050084, 0x0000000B, 0x000059D1, 0x000039C1, 0x0000229A, 0x00050041,
0x00000288, 0x00004E44, 0x0000118F, 0x00000A11, 0x0004003D, 0x0000000B,
0x000048C4, 0x00004E44, 0x00050041, 0x00000288, 0x000058AD, 0x0000118F,
0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7, 0x000058AD, 0x000500C7,
0x0000000B, 0x00004ADC, 0x000048C4, 0x00000A1F, 0x000500C7, 0x0000000B,
0x000055EF, 0x000048C4, 0x00000A22, 0x000500AB, 0x00000009, 0x0000500F,
0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B, 0x000028A2, 0x000048C4,
0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD, 0x000028A2, 0x00000A1F,
0x000500C7, 0x0000000B, 0x00005A4E, 0x000048C4, 0x00000926, 0x000500AB,
0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A, 0x000500C7, 0x0000000B,
0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4, 0x0000000B, 0x00003DA7,
0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B, 0x0000583F, 0x000051B7,
0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE, 0x0000583F, 0x00000A44,
0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE, 0x00000A19, 0x00050050,
0x00000011, 0x000028B6, 0x000051B7, 0x000051B7, 0x000500C2, 0x00000011,
0x00002891, 0x000028B6, 0x000008E3, 0x000500C7, 0x00000011, 0x00005B53,
0x00002891, 0x0000084A, 0x000500C4, 0x00000011, 0x00003F4F, 0x00005B53,
0x0000074E, 0x00050084, 0x00000011, 0x000059EC, 0x00003F4F, 0x00005C31,
0x000500C2, 0x0000000B, 0x000031C7, 0x000051B7, 0x00000A5E, 0x000500C7,
0x0000000B, 0x00004356, 0x000031C7, 0x00000A1F, 0x0004003D, 0x00000014,
0x000031C1, 0x00000F48, 0x0007004F, 0x00000011, 0x000038A4, 0x000031C1,
0x000031C1, 0x00000000, 0x00000001, 0x000500C4, 0x00000011, 0x00002EF9,
0x000038A4, 0x00000721, 0x00050051, 0x0000000B, 0x00001DD8, 0x00002EF9,
0x00000000, 0x000500C4, 0x0000000B, 0x00002D8A, 0x000059D1, 0x00000A13,
0x000500AE, 0x00000009, 0x00003C13, 0x00001DD8, 0x00002D8A, 0x000300F7,
0x000036C9, 0x00000002, 0x000400FA, 0x00003C13, 0x000055E9, 0x000036C9,
0x000200F8, 0x000055E9, 0x000200F9, 0x00004C7A, 0x000200F8, 0x000036C9,
0x00050051, 0x0000000B, 0x000048B7, 0x00002EF9, 0x00000001, 0x00050051,
0x0000000B, 0x000041A3, 0x00004A7B, 0x00000001, 0x0007000C, 0x0000000B,
0x00005F7E, 0x00000001, 0x00000029, 0x000048B7, 0x000041A3, 0x00050050,
0x00000011, 0x000051EF, 0x00001DD8, 0x00005F7E, 0x00050080, 0x00000011,
0x0000522C, 0x000051EF, 0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB,
0x00004356, 0x00000A13, 0x000300F7, 0x00005CE0, 0x00000000, 0x000400FA,
0x00003ECB, 0x00002AEE, 0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA,
0x00000009, 0x000034FE, 0x00004356, 0x00000A19, 0x000600A9, 0x0000000B,
0x000020F6, 0x000034FE, 0x00000A10, 0x00000A0A, 0x000200F9, 0x00005CE0,
0x000200F8, 0x00002AEE, 0x000200F9, 0x00005CE0, 0x000200F8, 0x00005CE0,
0x000700F5, 0x0000000B, 0x00004B64, 0x00004356, 0x00002AEE, 0x000020F6,
0x00003AEF, 0x00050050, 0x00000011, 0x000041BE, 0x0000217E, 0x0000217E,
0x000500AE, 0x0000000F, 0x00002E19, 0x000041BE, 0x0000072D, 0x000600A9,
0x00000011, 0x00004BB5, 0x00002E19, 0x00000724, 0x0000070F, 0x000500C4,
0x00000011, 0x00002AEA, 0x0000522C, 0x00004BB5, 0x00050050, 0x00000011,
0x0000605D, 0x00004B64, 0x00004B64, 0x000500C2, 0x00000011, 0x00002385,
0x0000605D, 0x00000718, 0x000500C7, 0x00000011, 0x00003EC8, 0x00002385,
0x00000724, 0x00050080, 0x00000011, 0x00004F30, 0x00002AEA, 0x00003EC8,
0x00050084, 0x00000011, 0x00005299, 0x00000A9F, 0x00005C31, 0x000500C2,
0x00000011, 0x00003985, 0x00005299, 0x00000718, 0x00050086, 0x00000011,
0x00004D57, 0x00004F30, 0x00003985, 0x00050051, 0x0000000B, 0x00004FA6,
0x00004D57, 0x00000001, 0x00050084, 0x0000000B, 0x00002B26, 0x00004FA6,
0x00005051, 0x00050051, 0x0000000B, 0x00006059, 0x00004D57, 0x00000000,
0x00050080, 0x0000000B, 0x00005420, 0x00002B26, 0x00006059, 0x00050080,
0x0000000B, 0x00002226, 0x0000217F, 0x00005420, 0x00050084, 0x00000011,
0x00005768, 0x00004D57, 0x00003985, 0x00050082, 0x00000011, 0x000050EB,
0x00004F30, 0x00005768, 0x00050051, 0x0000000B, 0x00001C87, 0x00005299,
0x00000000, 0x00050051, 0x0000000B, 0x00005962, 0x00005299, 0x00000001,
0x00050084, 0x0000000B, 0x00003372, 0x00001C87, 0x00005962, 0x00050084,
0x0000000B, 0x000038D7, 0x00002226, 0x00003372, 0x00050051, 0x0000000B,
0x00001A95, 0x000050EB, 0x00000001, 0x00050051, 0x0000000B, 0x00005BE6,
0x00003985, 0x00000000, 0x00050084, 0x0000000B, 0x00005966, 0x00001A95,
0x00005BE6, 0x00050051, 0x0000000B, 0x00001AE6, 0x000050EB, 0x00000000,
0x00050080, 0x0000000B, 0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4,
0x0000000B, 0x00004AFF, 0x000025E0, 0x00000A0D, 0x00050080, 0x0000000B,
0x0000187D, 0x000038D7, 0x00004AFF, 0x000500C2, 0x0000000B, 0x00005EF3,
0x0000187D, 0x00000A10, 0x00060041, 0x00000294, 0x00004C91, 0x00000CC7,
0x00000A0B, 0x00005EF3, 0x0004003D, 0x00000017, 0x00003141, 0x00004C91,
0x00050080, 0x0000000B, 0x00002DA7, 0x00005EF3, 0x00000A0D, 0x00060041,
0x00000A3A, 0x0004002B, 0x0000000B, 0x00000A84, 0x00000800, 0x0004002B,
0x0000000C, 0x00000A1A, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A19,
0x00000005, 0x0004002B, 0x0000000B, 0x00000A1F, 0x00000007, 0x0004002B,
0x0000000C, 0x00000A20, 0x00000007, 0x0004002B, 0x0000000C, 0x00000A35,
0x0000000E, 0x0004002B, 0x0000000C, 0x00000A11, 0x00000002, 0x0004002B,
0x0000000C, 0x000009DB, 0xFFFFFFF0, 0x0004002B, 0x0000000C, 0x00000A0E,
0x00000001, 0x0004002B, 0x0000000C, 0x00000A38, 0x0000000F, 0x0004002B,
0x0000000C, 0x00000A17, 0x00000004, 0x0004002B, 0x0000000C, 0x0000040B,
0xFFFFFE00, 0x0004002B, 0x0000000C, 0x00000A14, 0x00000003, 0x0004002B,
0x0000000C, 0x00000A3B, 0x00000010, 0x0004002B, 0x0000000C, 0x00000388,
0x000001C0, 0x0004002B, 0x0000000C, 0x00000A23, 0x00000008, 0x0004002B,
0x0000000C, 0x00000A1D, 0x00000006, 0x0004002B, 0x0000000C, 0x00000AC8,
0x0000003F, 0x0004002B, 0x0000000C, 0x0000078B, 0x0FFFFFFF, 0x0004002B,
0x0000000C, 0x00000A05, 0xFFFFFFFE, 0x0004002B, 0x0000000B, 0x00000A6A,
0x00000020, 0x0006001E, 0x000003F9, 0x0000000B, 0x0000000B, 0x0000000B,
0x0000000B, 0x00040020, 0x00000676, 0x00000009, 0x000003F9, 0x0004003B,
0x00000676, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B,
0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B, 0x0000000B, 0x00000A52,
0x00000018, 0x0004002B, 0x0000000B, 0x00000A37, 0x0000000F, 0x0004002B,
0x0000000B, 0x00000A5E, 0x0000001C, 0x0004002B, 0x0000000B, 0x00000A43,
0x00000013, 0x0005002C, 0x00000011, 0x00000883, 0x00000A3A, 0x00000A43,
0x0004002B, 0x0000000B, 0x00000510, 0x20000000, 0x0005002C, 0x00000011,
0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011, 0x00000740,
0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B, 0x00000926, 0x01000000,
0x0004002B, 0x0000000B, 0x00000A46, 0x00000014, 0x0005002C, 0x00000011,
0x000008E3, 0x00000A46, 0x00000A52, 0x0004002B, 0x0000000B, 0x0000068D,
0xFFFF0000, 0x0004002B, 0x0000000B, 0x000001C1, 0x0000FFFF, 0x00040020,
0x00000291, 0x00000001, 0x00000014, 0x0004003B, 0x00000291, 0x00000F48,
0x00000001, 0x0005002C, 0x00000011, 0x00000721, 0x00000A10, 0x00000A0A,
0x0003001D, 0x000007DC, 0x00000017, 0x0003001E, 0x000007B4, 0x000007DC,
0x00040020, 0x00000A32, 0x00000002, 0x000007B4, 0x0004003B, 0x00000A32,
0x00000CC7, 0x00000002, 0x00040020, 0x00000294, 0x00000002, 0x00000017,
0x0003001D, 0x000007DD, 0x00000017, 0x0003001E, 0x000007B5, 0x000007DD,
0x00040020, 0x00000A33, 0x00000002, 0x000007B5, 0x0004003B, 0x00000A33,
0x00001592, 0x00000002, 0x0006002C, 0x00000014, 0x00000AC7, 0x00000A22,
0x00000A22, 0x00000A0D, 0x0005002C, 0x00000011, 0x000007A2, 0x00000A1F,
0x00000A1F, 0x0005002C, 0x00000011, 0x0000074E, 0x00000A13, 0x00000A13,
0x0005002C, 0x00000011, 0x0000084A, 0x00000A37, 0x00000A37, 0x0004002B,
0x0000000B, 0x00000A25, 0x00000009, 0x0007002C, 0x00000017, 0x00000755,
0x0000068D, 0x0000068D, 0x0000068D, 0x0000068D, 0x0007002C, 0x00000017,
0x00000352, 0x000001C1, 0x000001C1, 0x000001C1, 0x000001C1, 0x0007002C,
0x00000017, 0x000009CE, 0x000008A6, 0x000008A6, 0x000008A6, 0x000008A6,
0x0007002C, 0x00000017, 0x0000013D, 0x00000A22, 0x00000A22, 0x00000A22,
0x00000A22, 0x0007002C, 0x00000017, 0x0000072E, 0x000005FD, 0x000005FD,
0x000005FD, 0x000005FD, 0x0007002C, 0x00000017, 0x000002ED, 0x00000A3A,
0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00050036, 0x00000008, 0x0000161F,
0x00000000, 0x00000502, 0x000200F8, 0x00003B06, 0x000300F7, 0x00004C7A,
0x00000000, 0x000300FB, 0x00000A0A, 0x00002E68, 0x000200F8, 0x00002E68,
0x00050041, 0x00000288, 0x000056E5, 0x0000118F, 0x00000A0B, 0x0004003D,
0x0000000B, 0x00003D0B, 0x000056E5, 0x00050041, 0x00000288, 0x000058AC,
0x0000118F, 0x00000A0E, 0x0004003D, 0x0000000B, 0x00005158, 0x000058AC,
0x000500C7, 0x0000000B, 0x00005051, 0x00003D0B, 0x00000A44, 0x000500C2,
0x0000000B, 0x00004E0A, 0x00003D0B, 0x00000A28, 0x000500C7, 0x0000000B,
0x0000217E, 0x00004E0A, 0x00000A13, 0x000500C2, 0x0000000B, 0x0000520A,
0x00003D0B, 0x00000A31, 0x000500C7, 0x0000000B, 0x0000217F, 0x0000520A,
0x00000A81, 0x000500C2, 0x0000000B, 0x00004994, 0x00003D0B, 0x00000A52,
0x000500C7, 0x0000000B, 0x000023AA, 0x00004994, 0x00000A37, 0x00050050,
0x00000011, 0x000022A7, 0x00005158, 0x00005158, 0x000500C2, 0x00000011,
0x000025A1, 0x000022A7, 0x00000883, 0x000500C7, 0x00000011, 0x00005C31,
0x000025A1, 0x000007A2, 0x000500C7, 0x0000000B, 0x00005DDE, 0x00003D0B,
0x00000510, 0x000500AB, 0x00000009, 0x00003007, 0x00005DDE, 0x00000A0A,
0x000300F7, 0x00003954, 0x00000000, 0x000400FA, 0x00003007, 0x00004163,
0x000055E8, 0x000200F8, 0x000055E8, 0x000200F9, 0x00003954, 0x000200F8,
0x00004163, 0x000500C2, 0x00000011, 0x00003BAE, 0x00005C31, 0x00000724,
0x000200F9, 0x00003954, 0x000200F8, 0x00003954, 0x000700F5, 0x00000011,
0x00004A7B, 0x00003BAE, 0x00004163, 0x0000070F, 0x000055E8, 0x000500C2,
0x00000011, 0x0000189F, 0x000022A7, 0x0000073F, 0x000500C4, 0x00000011,
0x00002A91, 0x00000724, 0x00000740, 0x00050082, 0x00000011, 0x000048B0,
0x00002A91, 0x00000724, 0x000500C7, 0x00000011, 0x00004937, 0x0000189F,
0x000048B0, 0x000500C4, 0x00000011, 0x00005784, 0x00004937, 0x0000074E,
0x00050084, 0x00000011, 0x000059EB, 0x00005784, 0x00005C31, 0x000500C2,
0x0000000B, 0x00003343, 0x00005158, 0x00000A19, 0x000500C7, 0x0000000B,
0x000039C1, 0x00003343, 0x00000A81, 0x00050051, 0x0000000B, 0x0000229A,
0x00005C31, 0x00000000, 0x00050084, 0x0000000B, 0x000059D1, 0x000039C1,
0x0000229A, 0x00050041, 0x00000288, 0x00004E44, 0x0000118F, 0x00000A11,
0x0004003D, 0x0000000B, 0x000048C4, 0x00004E44, 0x00050041, 0x00000288,
0x000058AD, 0x0000118F, 0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7,
0x000058AD, 0x000500C7, 0x0000000B, 0x00004ADC, 0x000048C4, 0x00000A1F,
0x000500C7, 0x0000000B, 0x000055EF, 0x000048C4, 0x00000A22, 0x000500AB,
0x00000009, 0x0000500F, 0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B,
0x000028A2, 0x000048C4, 0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD,
0x000028A2, 0x00000A1F, 0x000500C7, 0x0000000B, 0x00005A4E, 0x000048C4,
0x00000926, 0x000500AB, 0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A,
0x000500C7, 0x0000000B, 0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4,
0x0000000B, 0x00003DA7, 0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B,
0x0000583F, 0x000051B7, 0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE,
0x0000583F, 0x00000A44, 0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE,
0x00000A19, 0x00050050, 0x00000011, 0x000028B6, 0x000051B7, 0x000051B7,
0x000500C2, 0x00000011, 0x00002891, 0x000028B6, 0x000008E3, 0x000500C7,
0x00000011, 0x00005B53, 0x00002891, 0x0000084A, 0x000500C4, 0x00000011,
0x00003F4F, 0x00005B53, 0x0000074E, 0x00050084, 0x00000011, 0x000059EC,
0x00003F4F, 0x00005C31, 0x000500C2, 0x0000000B, 0x000031C7, 0x000051B7,
0x00000A5E, 0x000500C7, 0x0000000B, 0x00004356, 0x000031C7, 0x00000A1F,
0x0004003D, 0x00000014, 0x000031C1, 0x00000F48, 0x0007004F, 0x00000011,
0x000038A4, 0x000031C1, 0x000031C1, 0x00000000, 0x00000001, 0x000500C4,
0x00000011, 0x00002EF9, 0x000038A4, 0x00000721, 0x00050051, 0x0000000B,
0x00001DD8, 0x00002EF9, 0x00000000, 0x000500C4, 0x0000000B, 0x00002D8A,
0x000059D1, 0x00000A13, 0x000500AE, 0x00000009, 0x00003C13, 0x00001DD8,
0x00002D8A, 0x000300F7, 0x000036C9, 0x00000002, 0x000400FA, 0x00003C13,
0x000055E9, 0x000036C9, 0x000200F8, 0x000055E9, 0x000200F9, 0x00004C7A,
0x000200F8, 0x000036C9, 0x00050051, 0x0000000B, 0x000048B7, 0x00002EF9,
0x00000001, 0x00050051, 0x0000000B, 0x000041A3, 0x00004A7B, 0x00000001,
0x0007000C, 0x0000000B, 0x00005F7E, 0x00000001, 0x00000029, 0x000048B7,
0x000041A3, 0x00050050, 0x00000011, 0x000051EF, 0x00001DD8, 0x00005F7E,
0x00050080, 0x00000011, 0x0000522C, 0x000051EF, 0x000059EB, 0x000500B2,
0x00000009, 0x00003ECB, 0x00004356, 0x00000A13, 0x000300F7, 0x00005CE0,
0x00000000, 0x000400FA, 0x00003ECB, 0x00002AEE, 0x00003AEF, 0x000200F8,
0x00003AEF, 0x000500AA, 0x00000009, 0x000034FE, 0x00004356, 0x00000A19,
0x000600A9, 0x0000000B, 0x000020F6, 0x000034FE, 0x00000A10, 0x00000A0A,
0x000200F9, 0x00005CE0, 0x000200F8, 0x00002AEE, 0x000200F9, 0x00005CE0,
0x000200F8, 0x00005CE0, 0x000700F5, 0x0000000B, 0x00004B64, 0x00004356,
0x00002AEE, 0x000020F6, 0x00003AEF, 0x00050050, 0x00000011, 0x000041BE,
0x0000217E, 0x0000217E, 0x000500AE, 0x0000000F, 0x00002E19, 0x000041BE,
0x0000072D, 0x000600A9, 0x00000011, 0x00004BB5, 0x00002E19, 0x00000724,
0x0000070F, 0x000500C4, 0x00000011, 0x00002AEA, 0x0000522C, 0x00004BB5,
0x00050050, 0x00000011, 0x0000605D, 0x00004B64, 0x00004B64, 0x000500C2,
0x00000011, 0x00002385, 0x0000605D, 0x00000718, 0x000500C7, 0x00000011,
0x00003EC8, 0x00002385, 0x00000724, 0x00050080, 0x00000011, 0x00004F30,
0x00002AEA, 0x00003EC8, 0x00050084, 0x00000011, 0x00005299, 0x00000A9F,
0x00005C31, 0x000500C2, 0x00000011, 0x00003985, 0x00005299, 0x00000718,
0x00050086, 0x00000011, 0x00004D57, 0x00004F30, 0x00003985, 0x00050051,
0x0000000B, 0x00004FA6, 0x00004D57, 0x00000001, 0x00050084, 0x0000000B,
0x00002B26, 0x00004FA6, 0x00005051, 0x00050051, 0x0000000B, 0x00006059,
0x00004D57, 0x00000000, 0x00050080, 0x0000000B, 0x00005420, 0x00002B26,
0x00006059, 0x00050080, 0x0000000B, 0x00002226, 0x0000217F, 0x00005420,
0x00050084, 0x00000011, 0x00005768, 0x00004D57, 0x00003985, 0x00050082,
0x00000011, 0x000050EB, 0x00004F30, 0x00005768, 0x00050051, 0x0000000B,
0x00001C87, 0x00005299, 0x00000000, 0x00050051, 0x0000000B, 0x00005962,
0x00005299, 0x00000001, 0x00050084, 0x0000000B, 0x00003372, 0x00001C87,
0x00005962, 0x00050084, 0x0000000B, 0x000038D7, 0x00002226, 0x00003372,
0x00050051, 0x0000000B, 0x00001A95, 0x000050EB, 0x00000001, 0x00050051,
0x0000000B, 0x00005BE6, 0x00003985, 0x00000000, 0x00050084, 0x0000000B,
0x00005966, 0x00001A95, 0x00005BE6, 0x00050051, 0x0000000B, 0x00001AE6,
0x000050EB, 0x00000000, 0x00050080, 0x0000000B, 0x000025E0, 0x00005966,
0x00001AE6, 0x000500C4, 0x0000000B, 0x00004665, 0x000025E0, 0x00000A0D,
0x00050080, 0x0000000B, 0x000047BB, 0x000038D7, 0x00004665, 0x00050084,
0x0000000B, 0x0000363C, 0x00003372, 0x00000A84, 0x00050089, 0x0000000B,
0x00004D53, 0x000047BB, 0x0000363C, 0x000500C2, 0x0000000B, 0x0000552E,
0x00004D53, 0x00000A10, 0x00060041, 0x00000294, 0x00004316, 0x00000CC7,
0x00000A0B, 0x0000552E, 0x0004003D, 0x00000017, 0x00003141, 0x00004316,
0x00050080, 0x0000000B, 0x00002DA7, 0x0000552E, 0x00000A0D, 0x00060041,
0x00000294, 0x00001C1D, 0x00000CC7, 0x00000A0B, 0x00002DA7, 0x0004003D,
0x00000017, 0x00004D82, 0x00001C1D, 0x000500AA, 0x00000009, 0x00005272,
0x00001DD8, 0x00000A0A, 0x000300F7, 0x000033DC, 0x00000000, 0x000400FA,

View File

@ -55,6 +55,7 @@
%1816 = OpConstantComposite %v2uint %uint_1 %uint_0
%uint_80 = OpConstant %uint 80
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%uint_2048 = OpConstant %uint 2048
%int_5 = OpConstant %int 5
%uint_5 = OpConstant %uint 5
%uint_7 = OpConstant %uint 7
@ -83,17 +84,15 @@
%uint_1023 = OpConstant %uint 1023
%uint_10 = OpConstant %uint 10
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_25 = OpConstant %uint 25
%uint_2047 = OpConstant %uint 2047
%uint_24 = OpConstant %uint 24
%uint_15 = OpConstant %uint 15
%uint_28 = OpConstant %uint 28
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_2047 = OpConstant %uint 2047
%uint_16777216 = OpConstant %uint 16777216
%uint_20 = OpConstant %uint 20
%uint_24 = OpConstant %uint 24
%2275 = OpConstantComposite %v2uint %uint_20 %uint_24
%uint_28 = OpConstant %uint 28
%v3uint = OpTypeVector %uint 3
%uint_4294901760 = OpConstant %uint 4294901760
%uint_65535 = OpConstant %uint 65535
@ -134,8 +133,8 @@
%20824 = OpLoad %uint %22700
%20561 = OpBitwiseAnd %uint %15627 %uint_1023
%19978 = OpShiftRightLogical %uint %15627 %uint_13
%8574 = OpBitwiseAnd %uint %19978 %uint_4095
%18836 = OpShiftRightLogical %uint %15627 %uint_25
%8574 = OpBitwiseAnd %uint %19978 %uint_2047
%18836 = OpShiftRightLogical %uint %15627 %uint_24
%9130 = OpBitwiseAnd %uint %18836 %uint_15
%8814 = OpCompositeConstruct %v2uint %20824 %20824
%8841 = OpShiftRightLogical %v2uint %8814 %1855
@ -223,30 +222,32 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %20715 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_1
%6269 = OpIAdd %uint %14551 %19199
%24307 = OpShiftRightLogical %uint %6269 %uint_1
%18708 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %24307
%21063 = OpLoad %v2uint %18708
%18021 = OpShiftLeftLogical %uint %9696 %uint_1
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%19795 = OpUMod %uint %18363 %13884
%21806 = OpShiftRightLogical %uint %19795 %uint_1
%16281 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %21806
%21063 = OpLoad %v2uint %16281
%19234 = OpCompositeExtract %uint %21063 0
%15341 = OpCompositeInsert %v4uint %19234 %10264 0
%20745 = OpCompositeExtract %uint %21063 1
%7681 = OpCompositeInsert %v4uint %20745 %15341 1
%18762 = OpIAdd %uint %24307 %uint_2
%18762 = OpIAdd %uint %21806 %uint_2
%6300 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %18762
%13033 = OpLoad %v2uint %6300
%19235 = OpCompositeExtract %uint %13033 0
%15342 = OpCompositeInsert %v4uint %19235 %7681 2
%20746 = OpCompositeExtract %uint %13033 1
%7682 = OpCompositeInsert %v4uint %20746 %15342 3
%18763 = OpIAdd %uint %24307 %uint_4
%18763 = OpIAdd %uint %21806 %uint_4
%6301 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %18763
%13034 = OpLoad %v2uint %6301
%19236 = OpCompositeExtract %uint %13034 0
%15343 = OpCompositeInsert %v4uint %19236 %10264 0
%20747 = OpCompositeExtract %uint %13034 1
%7683 = OpCompositeInsert %v4uint %20747 %15343 1
%18764 = OpIAdd %uint %24307 %uint_6
%18764 = OpIAdd %uint %21806 %uint_6
%6302 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %18764
%13035 = OpLoad %v2uint %6302
%19237 = OpCompositeExtract %uint %13035 0
@ -516,154 +517,155 @@ const uint32_t resolve_fast_64bpp_4xmsaa_cs[] = {
0x00000A0A, 0x0005002C, 0x00000011, 0x00000724, 0x00000A0D, 0x00000A0D,
0x0005002C, 0x00000011, 0x00000718, 0x00000A0D, 0x00000A0A, 0x0004002B,
0x0000000B, 0x00000AFA, 0x00000050, 0x0005002C, 0x00000011, 0x00000A9F,
0x00000AFA, 0x00000A3A, 0x0004002B, 0x0000000C, 0x00000A1A, 0x00000005,
0x0004002B, 0x0000000B, 0x00000A19, 0x00000005, 0x0004002B, 0x0000000B,
0x00000A1F, 0x00000007, 0x0004002B, 0x0000000C, 0x00000A20, 0x00000007,
0x0004002B, 0x0000000C, 0x00000A35, 0x0000000E, 0x0004002B, 0x0000000C,
0x00000A11, 0x00000002, 0x0004002B, 0x0000000C, 0x000009DB, 0xFFFFFFF0,
0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C,
0x00000A38, 0x0000000F, 0x0004002B, 0x0000000C, 0x00000A17, 0x00000004,
0x0004002B, 0x0000000C, 0x0000040B, 0xFFFFFE00, 0x0004002B, 0x0000000C,
0x00000A14, 0x00000003, 0x0004002B, 0x0000000C, 0x00000A3B, 0x00000010,
0x0004002B, 0x0000000C, 0x00000388, 0x000001C0, 0x0004002B, 0x0000000C,
0x00000A23, 0x00000008, 0x0004002B, 0x0000000C, 0x00000A1D, 0x00000006,
0x0004002B, 0x0000000C, 0x00000AC8, 0x0000003F, 0x0004002B, 0x0000000B,
0x00000A1C, 0x00000006, 0x0004002B, 0x0000000C, 0x0000078B, 0x0FFFFFFF,
0x0004002B, 0x0000000C, 0x00000A05, 0xFFFFFFFE, 0x0007001E, 0x0000040C,
0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x00040020,
0x00000688, 0x00000009, 0x0000040C, 0x0004003B, 0x00000688, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000B, 0x00000A44,
0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000AFB,
0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A55, 0x00000019, 0x0004002B,
0x0000000B, 0x00000A37, 0x0000000F, 0x0005002C, 0x00000011, 0x0000073F,
0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011, 0x00000740, 0x00000A16,
0x00000A0D, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B,
0x0000000B, 0x00000926, 0x01000000, 0x0004002B, 0x0000000B, 0x00000A46,
0x00000014, 0x0004002B, 0x0000000B, 0x00000A52, 0x00000018, 0x0005002C,
0x00000011, 0x000008E3, 0x00000A46, 0x00000A52, 0x0004002B, 0x0000000B,
0x00000A5E, 0x0000001C, 0x00040017, 0x00000014, 0x0000000B, 0x00000003,
0x0004002B, 0x0000000B, 0x0000068D, 0xFFFF0000, 0x0004002B, 0x0000000B,
0x000001C1, 0x0000FFFF, 0x00040020, 0x00000291, 0x00000001, 0x00000014,
0x0004003B, 0x00000291, 0x00000F48, 0x00000001, 0x0005002C, 0x00000011,
0x00000721, 0x00000A10, 0x00000A0A, 0x0003002A, 0x00000009, 0x00000787,
0x0003001D, 0x000007D6, 0x00000011, 0x0003001E, 0x000007A8, 0x000007D6,
0x00040020, 0x00000A25, 0x00000002, 0x000007A8, 0x0004003B, 0x00000A25,
0x00000CC7, 0x00000002, 0x00040020, 0x0000028E, 0x00000002, 0x00000011,
0x0003001D, 0x000007DC, 0x00000017, 0x0003001E, 0x000007B4, 0x000007DC,
0x00040020, 0x00000A32, 0x00000002, 0x000007B4, 0x0004003B, 0x00000A32,
0x00001592, 0x00000002, 0x00040020, 0x00000294, 0x00000002, 0x00000017,
0x0006002C, 0x00000014, 0x00000AC7, 0x00000A22, 0x00000A22, 0x00000A0D,
0x00030001, 0x00000017, 0x00002818, 0x0005002C, 0x00000011, 0x0000074E,
0x00000A13, 0x00000A13, 0x0005002C, 0x00000011, 0x0000084A, 0x00000A37,
0x00000A37, 0x0005002C, 0x00000011, 0x00000739, 0x00000A10, 0x00000A10,
0x0004002B, 0x0000000B, 0x00000A26, 0x00000009, 0x0007002C, 0x00000017,
0x00000755, 0x0000068D, 0x0000068D, 0x0000068D, 0x0000068D, 0x0007002C,
0x00000017, 0x00000352, 0x000001C1, 0x000001C1, 0x000001C1, 0x000001C1,
0x0007002C, 0x00000017, 0x000009CE, 0x000008A6, 0x000008A6, 0x000008A6,
0x000008A6, 0x0007002C, 0x00000017, 0x0000013D, 0x00000A22, 0x00000A22,
0x00000A22, 0x00000A22, 0x0007002C, 0x00000017, 0x0000072E, 0x000005FD,
0x000005FD, 0x000005FD, 0x000005FD, 0x0007002C, 0x00000017, 0x000002ED,
0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00050036, 0x00000008,
0x0000161F, 0x00000000, 0x00000502, 0x000200F8, 0x00003B06, 0x000300F7,
0x00004C7A, 0x00000000, 0x000300FB, 0x00000A0A, 0x00002E68, 0x000200F8,
0x00002E68, 0x00050041, 0x00000288, 0x000056E5, 0x0000118F, 0x00000A0B,
0x0004003D, 0x0000000B, 0x00003D0B, 0x000056E5, 0x00050041, 0x00000288,
0x000058AC, 0x0000118F, 0x00000A0E, 0x0004003D, 0x0000000B, 0x00005158,
0x000058AC, 0x000500C7, 0x0000000B, 0x00005051, 0x00003D0B, 0x00000A44,
0x000500C2, 0x0000000B, 0x00004E0A, 0x00003D0B, 0x00000A31, 0x000500C7,
0x0000000B, 0x0000217E, 0x00004E0A, 0x00000AFB, 0x000500C2, 0x0000000B,
0x00004994, 0x00003D0B, 0x00000A55, 0x000500C7, 0x0000000B, 0x000023AA,
0x00004994, 0x00000A37, 0x00050050, 0x00000011, 0x0000226E, 0x00005158,
0x00005158, 0x000500C2, 0x00000011, 0x00002289, 0x0000226E, 0x0000073F,
0x000500C4, 0x00000011, 0x000057EB, 0x00000724, 0x00000740, 0x00050082,
0x00000011, 0x000048B0, 0x000057EB, 0x00000724, 0x000500C7, 0x00000011,
0x00004937, 0x00002289, 0x000048B0, 0x000500C4, 0x00000011, 0x00005784,
0x00004937, 0x0000074E, 0x00050084, 0x00000011, 0x000059EB, 0x00005784,
0x00000724, 0x000500C2, 0x0000000B, 0x00003213, 0x00005158, 0x00000A19,
0x000500C7, 0x0000000B, 0x00003F4C, 0x00003213, 0x00000A81, 0x00050041,
0x00000288, 0x0000492C, 0x0000118F, 0x00000A11, 0x0004003D, 0x0000000B,
0x00005EAC, 0x0000492C, 0x00050041, 0x00000288, 0x000058AD, 0x0000118F,
0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7, 0x000058AD, 0x000500C7,
0x0000000B, 0x00004ADC, 0x00005EAC, 0x00000A1F, 0x000500C7, 0x0000000B,
0x000055EF, 0x00005EAC, 0x00000A22, 0x000500AB, 0x00000009, 0x0000500F,
0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B, 0x000028A2, 0x00005EAC,
0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD, 0x000028A2, 0x00000A1F,
0x000500C7, 0x0000000B, 0x00005A4E, 0x00005EAC, 0x00000926, 0x000500AB,
0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A, 0x000500C7, 0x0000000B,
0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4, 0x0000000B, 0x00003DA7,
0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B, 0x0000583F, 0x000051B7,
0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE, 0x0000583F, 0x00000A44,
0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE, 0x00000A19, 0x00050050,
0x00000011, 0x000028B6, 0x000051B7, 0x000051B7, 0x000500C2, 0x00000011,
0x00002891, 0x000028B6, 0x000008E3, 0x000500C7, 0x00000011, 0x00005B53,
0x00002891, 0x0000084A, 0x000500C4, 0x00000011, 0x00003F4F, 0x00005B53,
0x0000074E, 0x00050084, 0x00000011, 0x000059EC, 0x00003F4F, 0x00000724,
0x000500C2, 0x0000000B, 0x00003214, 0x000051B7, 0x00000A5E, 0x000500C7,
0x0000000B, 0x00003F4D, 0x00003214, 0x00000A1F, 0x00050041, 0x00000288,
0x000048E0, 0x0000118F, 0x00000A17, 0x0004003D, 0x0000000B, 0x000062B6,
0x000048E0, 0x0004003D, 0x00000014, 0x0000374F, 0x00000F48, 0x0007004F,
0x00000011, 0x00003180, 0x0000374F, 0x0000374F, 0x00000000, 0x00000001,
0x000500C4, 0x00000011, 0x00002EF9, 0x00003180, 0x00000721, 0x00050051,
0x0000000B, 0x00001DD8, 0x00002EF9, 0x00000000, 0x000500C4, 0x0000000B,
0x00002D8A, 0x00003F4C, 0x00000A13, 0x000500AE, 0x00000009, 0x00003C13,
0x00001DD8, 0x00002D8A, 0x000300F7, 0x000031D3, 0x00000002, 0x000400FA,
0x00003C13, 0x000055E8, 0x000031D3, 0x000200F8, 0x000055E8, 0x000200F9,
0x00004C7A, 0x000200F8, 0x000031D3, 0x00050051, 0x0000000B, 0x00001CAC,
0x00002EF9, 0x00000001, 0x0007000C, 0x0000000B, 0x00001F38, 0x00000001,
0x00000029, 0x00001CAC, 0x00000A0A, 0x00050050, 0x00000011, 0x000051EF,
0x00001DD8, 0x00001F38, 0x00050080, 0x00000011, 0x0000522C, 0x000051EF,
0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB, 0x00003F4D, 0x00000A13,
0x000300F7, 0x0000195B, 0x00000000, 0x000400FA, 0x00003ECB, 0x00002AEE,
0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA, 0x00000009, 0x000034FE,
0x00003F4D, 0x00000A19, 0x000600A9, 0x0000000B, 0x000020F6, 0x000034FE,
0x00000A10, 0x00000A0A, 0x000200F9, 0x0000195B, 0x000200F8, 0x00002AEE,
0x000200F9, 0x0000195B, 0x000200F8, 0x0000195B, 0x000700F5, 0x0000000B,
0x000055FE, 0x00003F4D, 0x00002AEE, 0x000020F6, 0x00003AEF, 0x000500AE,
0x0000000F, 0x00005BE0, 0x00000739, 0x0000072D, 0x000600A9, 0x00000011,
0x00001E5B, 0x00005BE0, 0x00000724, 0x0000070F, 0x000500C4, 0x00000011,
0x00002AEA, 0x0000522C, 0x00001E5B, 0x00050050, 0x00000011, 0x0000605D,
0x000055FE, 0x000055FE, 0x000500C2, 0x00000011, 0x00002385, 0x0000605D,
0x00000718, 0x000500C7, 0x00000011, 0x00003EC8, 0x00002385, 0x00000724,
0x00050080, 0x00000011, 0x00004F30, 0x00002AEA, 0x00003EC8, 0x00050084,
0x00000011, 0x00005299, 0x00000A9F, 0x00000724, 0x000500C2, 0x00000011,
0x00003985, 0x00005299, 0x00000718, 0x00050086, 0x00000011, 0x00004D57,
0x00004F30, 0x00003985, 0x00050051, 0x0000000B, 0x00004FA6, 0x00004D57,
0x00000001, 0x00050084, 0x0000000B, 0x00002B26, 0x00004FA6, 0x00005051,
0x00050051, 0x0000000B, 0x00006059, 0x00004D57, 0x00000000, 0x00050080,
0x0000000B, 0x00005420, 0x00002B26, 0x00006059, 0x00050080, 0x0000000B,
0x00002226, 0x0000217E, 0x00005420, 0x00050084, 0x00000011, 0x00005768,
0x00004D57, 0x00003985, 0x00050082, 0x00000011, 0x000050EB, 0x00004F30,
0x00005768, 0x00050051, 0x0000000B, 0x00001C87, 0x00005299, 0x00000000,
0x00050051, 0x0000000B, 0x00005962, 0x00005299, 0x00000001, 0x00050084,
0x0000000B, 0x00003372, 0x00001C87, 0x00005962, 0x00050084, 0x0000000B,
0x000038D7, 0x00002226, 0x00003372, 0x00050051, 0x0000000B, 0x00001A95,
0x000050EB, 0x00000001, 0x00050051, 0x0000000B, 0x00005BE6, 0x00003985,
0x00000000, 0x00050084, 0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6,
0x00050051, 0x0000000B, 0x00001AE6, 0x000050EB, 0x00000000, 0x00050080,
0x0000000B, 0x000025E0, 0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B,
0x00004AFF, 0x000025E0, 0x00000A0D, 0x00050080, 0x0000000B, 0x0000187D,
0x000038D7, 0x00004AFF, 0x000500C2, 0x0000000B, 0x00005EF3, 0x0000187D,
0x00000A0D, 0x00060041, 0x0000028E, 0x00004914, 0x00000CC7, 0x00000A0B,
0x00005EF3, 0x0004003D, 0x00000011, 0x00005247, 0x00004914, 0x00050051,
0x00000AFA, 0x00000A3A, 0x0004002B, 0x0000000B, 0x00000A84, 0x00000800,
0x0004002B, 0x0000000C, 0x00000A1A, 0x00000005, 0x0004002B, 0x0000000B,
0x00000A19, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A1F, 0x00000007,
0x0004002B, 0x0000000C, 0x00000A20, 0x00000007, 0x0004002B, 0x0000000C,
0x00000A35, 0x0000000E, 0x0004002B, 0x0000000C, 0x00000A11, 0x00000002,
0x0004002B, 0x0000000C, 0x000009DB, 0xFFFFFFF0, 0x0004002B, 0x0000000C,
0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C, 0x00000A38, 0x0000000F,
0x0004002B, 0x0000000C, 0x00000A17, 0x00000004, 0x0004002B, 0x0000000C,
0x0000040B, 0xFFFFFE00, 0x0004002B, 0x0000000C, 0x00000A14, 0x00000003,
0x0004002B, 0x0000000C, 0x00000A3B, 0x00000010, 0x0004002B, 0x0000000C,
0x00000388, 0x000001C0, 0x0004002B, 0x0000000C, 0x00000A23, 0x00000008,
0x0004002B, 0x0000000C, 0x00000A1D, 0x00000006, 0x0004002B, 0x0000000C,
0x00000AC8, 0x0000003F, 0x0004002B, 0x0000000B, 0x00000A1C, 0x00000006,
0x0004002B, 0x0000000C, 0x0000078B, 0x0FFFFFFF, 0x0004002B, 0x0000000C,
0x00000A05, 0xFFFFFFFE, 0x0007001E, 0x0000040C, 0x0000000B, 0x0000000B,
0x0000000B, 0x0000000B, 0x0000000B, 0x00040020, 0x00000688, 0x00000009,
0x0000040C, 0x0004003B, 0x00000688, 0x0000118F, 0x00000009, 0x0004002B,
0x0000000C, 0x00000A0B, 0x00000000, 0x00040020, 0x00000288, 0x00000009,
0x0000000B, 0x0004002B, 0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B,
0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B, 0x0000000B, 0x00000A31,
0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81, 0x000007FF, 0x0004002B,
0x0000000B, 0x00000A52, 0x00000018, 0x0004002B, 0x0000000B, 0x00000A37,
0x0000000F, 0x0004002B, 0x0000000B, 0x00000A5E, 0x0000001C, 0x0005002C,
0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C, 0x00000011,
0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B, 0x00000926,
0x01000000, 0x0004002B, 0x0000000B, 0x00000A46, 0x00000014, 0x0005002C,
0x00000011, 0x000008E3, 0x00000A46, 0x00000A52, 0x00040017, 0x00000014,
0x0000000B, 0x00000003, 0x0004002B, 0x0000000B, 0x0000068D, 0xFFFF0000,
0x0004002B, 0x0000000B, 0x000001C1, 0x0000FFFF, 0x00040020, 0x00000291,
0x00000001, 0x00000014, 0x0004003B, 0x00000291, 0x00000F48, 0x00000001,
0x0005002C, 0x00000011, 0x00000721, 0x00000A10, 0x00000A0A, 0x0003002A,
0x00000009, 0x00000787, 0x0003001D, 0x000007D6, 0x00000011, 0x0003001E,
0x000007A8, 0x000007D6, 0x00040020, 0x00000A25, 0x00000002, 0x000007A8,
0x0004003B, 0x00000A25, 0x00000CC7, 0x00000002, 0x00040020, 0x0000028E,
0x00000002, 0x00000011, 0x0003001D, 0x000007DC, 0x00000017, 0x0003001E,
0x000007B4, 0x000007DC, 0x00040020, 0x00000A32, 0x00000002, 0x000007B4,
0x0004003B, 0x00000A32, 0x00001592, 0x00000002, 0x00040020, 0x00000294,
0x00000002, 0x00000017, 0x0006002C, 0x00000014, 0x00000AC7, 0x00000A22,
0x00000A22, 0x00000A0D, 0x00030001, 0x00000017, 0x00002818, 0x0005002C,
0x00000011, 0x0000074E, 0x00000A13, 0x00000A13, 0x0005002C, 0x00000011,
0x0000084A, 0x00000A37, 0x00000A37, 0x0005002C, 0x00000011, 0x00000739,
0x00000A10, 0x00000A10, 0x0004002B, 0x0000000B, 0x00000A26, 0x00000009,
0x0007002C, 0x00000017, 0x00000755, 0x0000068D, 0x0000068D, 0x0000068D,
0x0000068D, 0x0007002C, 0x00000017, 0x00000352, 0x000001C1, 0x000001C1,
0x000001C1, 0x000001C1, 0x0007002C, 0x00000017, 0x000009CE, 0x000008A6,
0x000008A6, 0x000008A6, 0x000008A6, 0x0007002C, 0x00000017, 0x0000013D,
0x00000A22, 0x00000A22, 0x00000A22, 0x00000A22, 0x0007002C, 0x00000017,
0x0000072E, 0x000005FD, 0x000005FD, 0x000005FD, 0x000005FD, 0x0007002C,
0x00000017, 0x000002ED, 0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00000A3A,
0x00050036, 0x00000008, 0x0000161F, 0x00000000, 0x00000502, 0x000200F8,
0x00003B06, 0x000300F7, 0x00004C7A, 0x00000000, 0x000300FB, 0x00000A0A,
0x00002E68, 0x000200F8, 0x00002E68, 0x00050041, 0x00000288, 0x000056E5,
0x0000118F, 0x00000A0B, 0x0004003D, 0x0000000B, 0x00003D0B, 0x000056E5,
0x00050041, 0x00000288, 0x000058AC, 0x0000118F, 0x00000A0E, 0x0004003D,
0x0000000B, 0x00005158, 0x000058AC, 0x000500C7, 0x0000000B, 0x00005051,
0x00003D0B, 0x00000A44, 0x000500C2, 0x0000000B, 0x00004E0A, 0x00003D0B,
0x00000A31, 0x000500C7, 0x0000000B, 0x0000217E, 0x00004E0A, 0x00000A81,
0x000500C2, 0x0000000B, 0x00004994, 0x00003D0B, 0x00000A52, 0x000500C7,
0x0000000B, 0x000023AA, 0x00004994, 0x00000A37, 0x00050050, 0x00000011,
0x0000226E, 0x00005158, 0x00005158, 0x000500C2, 0x00000011, 0x00002289,
0x0000226E, 0x0000073F, 0x000500C4, 0x00000011, 0x000057EB, 0x00000724,
0x00000740, 0x00050082, 0x00000011, 0x000048B0, 0x000057EB, 0x00000724,
0x000500C7, 0x00000011, 0x00004937, 0x00002289, 0x000048B0, 0x000500C4,
0x00000011, 0x00005784, 0x00004937, 0x0000074E, 0x00050084, 0x00000011,
0x000059EB, 0x00005784, 0x00000724, 0x000500C2, 0x0000000B, 0x00003213,
0x00005158, 0x00000A19, 0x000500C7, 0x0000000B, 0x00003F4C, 0x00003213,
0x00000A81, 0x00050041, 0x00000288, 0x0000492C, 0x0000118F, 0x00000A11,
0x0004003D, 0x0000000B, 0x00005EAC, 0x0000492C, 0x00050041, 0x00000288,
0x000058AD, 0x0000118F, 0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7,
0x000058AD, 0x000500C7, 0x0000000B, 0x00004ADC, 0x00005EAC, 0x00000A1F,
0x000500C7, 0x0000000B, 0x000055EF, 0x00005EAC, 0x00000A22, 0x000500AB,
0x00000009, 0x0000500F, 0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B,
0x000028A2, 0x00005EAC, 0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD,
0x000028A2, 0x00000A1F, 0x000500C7, 0x0000000B, 0x00005A4E, 0x00005EAC,
0x00000926, 0x000500AB, 0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A,
0x000500C7, 0x0000000B, 0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4,
0x0000000B, 0x00003DA7, 0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B,
0x0000583F, 0x000051B7, 0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE,
0x0000583F, 0x00000A44, 0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE,
0x00000A19, 0x00050050, 0x00000011, 0x000028B6, 0x000051B7, 0x000051B7,
0x000500C2, 0x00000011, 0x00002891, 0x000028B6, 0x000008E3, 0x000500C7,
0x00000011, 0x00005B53, 0x00002891, 0x0000084A, 0x000500C4, 0x00000011,
0x00003F4F, 0x00005B53, 0x0000074E, 0x00050084, 0x00000011, 0x000059EC,
0x00003F4F, 0x00000724, 0x000500C2, 0x0000000B, 0x00003214, 0x000051B7,
0x00000A5E, 0x000500C7, 0x0000000B, 0x00003F4D, 0x00003214, 0x00000A1F,
0x00050041, 0x00000288, 0x000048E0, 0x0000118F, 0x00000A17, 0x0004003D,
0x0000000B, 0x000062B6, 0x000048E0, 0x0004003D, 0x00000014, 0x0000374F,
0x00000F48, 0x0007004F, 0x00000011, 0x00003180, 0x0000374F, 0x0000374F,
0x00000000, 0x00000001, 0x000500C4, 0x00000011, 0x00002EF9, 0x00003180,
0x00000721, 0x00050051, 0x0000000B, 0x00001DD8, 0x00002EF9, 0x00000000,
0x000500C4, 0x0000000B, 0x00002D8A, 0x00003F4C, 0x00000A13, 0x000500AE,
0x00000009, 0x00003C13, 0x00001DD8, 0x00002D8A, 0x000300F7, 0x000031D3,
0x00000002, 0x000400FA, 0x00003C13, 0x000055E8, 0x000031D3, 0x000200F8,
0x000055E8, 0x000200F9, 0x00004C7A, 0x000200F8, 0x000031D3, 0x00050051,
0x0000000B, 0x00001CAC, 0x00002EF9, 0x00000001, 0x0007000C, 0x0000000B,
0x00001F38, 0x00000001, 0x00000029, 0x00001CAC, 0x00000A0A, 0x00050050,
0x00000011, 0x000051EF, 0x00001DD8, 0x00001F38, 0x00050080, 0x00000011,
0x0000522C, 0x000051EF, 0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB,
0x00003F4D, 0x00000A13, 0x000300F7, 0x0000195B, 0x00000000, 0x000400FA,
0x00003ECB, 0x00002AEE, 0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA,
0x00000009, 0x000034FE, 0x00003F4D, 0x00000A19, 0x000600A9, 0x0000000B,
0x000020F6, 0x000034FE, 0x00000A10, 0x00000A0A, 0x000200F9, 0x0000195B,
0x000200F8, 0x00002AEE, 0x000200F9, 0x0000195B, 0x000200F8, 0x0000195B,
0x000700F5, 0x0000000B, 0x000055FE, 0x00003F4D, 0x00002AEE, 0x000020F6,
0x00003AEF, 0x000500AE, 0x0000000F, 0x00005BE0, 0x00000739, 0x0000072D,
0x000600A9, 0x00000011, 0x00001E5B, 0x00005BE0, 0x00000724, 0x0000070F,
0x000500C4, 0x00000011, 0x00002AEA, 0x0000522C, 0x00001E5B, 0x00050050,
0x00000011, 0x0000605D, 0x000055FE, 0x000055FE, 0x000500C2, 0x00000011,
0x00002385, 0x0000605D, 0x00000718, 0x000500C7, 0x00000011, 0x00003EC8,
0x00002385, 0x00000724, 0x00050080, 0x00000011, 0x00004F30, 0x00002AEA,
0x00003EC8, 0x00050084, 0x00000011, 0x00005299, 0x00000A9F, 0x00000724,
0x000500C2, 0x00000011, 0x00003985, 0x00005299, 0x00000718, 0x00050086,
0x00000011, 0x00004D57, 0x00004F30, 0x00003985, 0x00050051, 0x0000000B,
0x00004FA6, 0x00004D57, 0x00000001, 0x00050084, 0x0000000B, 0x00002B26,
0x00004FA6, 0x00005051, 0x00050051, 0x0000000B, 0x00006059, 0x00004D57,
0x00000000, 0x00050080, 0x0000000B, 0x00005420, 0x00002B26, 0x00006059,
0x00050080, 0x0000000B, 0x00002226, 0x0000217E, 0x00005420, 0x00050084,
0x00000011, 0x00005768, 0x00004D57, 0x00003985, 0x00050082, 0x00000011,
0x000050EB, 0x00004F30, 0x00005768, 0x00050051, 0x0000000B, 0x00001C87,
0x00005299, 0x00000000, 0x00050051, 0x0000000B, 0x00005962, 0x00005299,
0x00000001, 0x00050084, 0x0000000B, 0x00003372, 0x00001C87, 0x00005962,
0x00050084, 0x0000000B, 0x000038D7, 0x00002226, 0x00003372, 0x00050051,
0x0000000B, 0x00001A95, 0x000050EB, 0x00000001, 0x00050051, 0x0000000B,
0x00005BE6, 0x00003985, 0x00000000, 0x00050084, 0x0000000B, 0x00005966,
0x00001A95, 0x00005BE6, 0x00050051, 0x0000000B, 0x00001AE6, 0x000050EB,
0x00000000, 0x00050080, 0x0000000B, 0x000025E0, 0x00005966, 0x00001AE6,
0x000500C4, 0x0000000B, 0x00004665, 0x000025E0, 0x00000A0D, 0x00050080,
0x0000000B, 0x000047BB, 0x000038D7, 0x00004665, 0x00050084, 0x0000000B,
0x0000363C, 0x00003372, 0x00000A84, 0x00050089, 0x0000000B, 0x00004D53,
0x000047BB, 0x0000363C, 0x000500C2, 0x0000000B, 0x0000552E, 0x00004D53,
0x00000A0D, 0x00060041, 0x0000028E, 0x00003F99, 0x00000CC7, 0x00000A0B,
0x0000552E, 0x0004003D, 0x00000011, 0x00005247, 0x00003F99, 0x00050051,
0x0000000B, 0x00004B22, 0x00005247, 0x00000000, 0x00060052, 0x00000017,
0x00003BED, 0x00004B22, 0x00002818, 0x00000000, 0x00050051, 0x0000000B,
0x00005109, 0x00005247, 0x00000001, 0x00060052, 0x00000017, 0x00001E01,
0x00005109, 0x00003BED, 0x00000001, 0x00050080, 0x0000000B, 0x0000494A,
0x00005EF3, 0x00000A10, 0x00060041, 0x0000028E, 0x0000189C, 0x00000CC7,
0x0000552E, 0x00000A10, 0x00060041, 0x0000028E, 0x0000189C, 0x00000CC7,
0x00000A0B, 0x0000494A, 0x0004003D, 0x00000011, 0x000032E9, 0x0000189C,
0x00050051, 0x0000000B, 0x00004B23, 0x000032E9, 0x00000000, 0x00060052,
0x00000017, 0x00003BEE, 0x00004B23, 0x00001E01, 0x00000002, 0x00050051,
0x0000000B, 0x0000510A, 0x000032E9, 0x00000001, 0x00060052, 0x00000017,
0x00001E02, 0x0000510A, 0x00003BEE, 0x00000003, 0x00050080, 0x0000000B,
0x0000494B, 0x00005EF3, 0x00000A16, 0x00060041, 0x0000028E, 0x0000189D,
0x0000494B, 0x0000552E, 0x00000A16, 0x00060041, 0x0000028E, 0x0000189D,
0x00000CC7, 0x00000A0B, 0x0000494B, 0x0004003D, 0x00000011, 0x000032EA,
0x0000189D, 0x00050051, 0x0000000B, 0x00004B24, 0x000032EA, 0x00000000,
0x00060052, 0x00000017, 0x00003BEF, 0x00004B24, 0x00002818, 0x00000000,
0x00050051, 0x0000000B, 0x0000510B, 0x000032EA, 0x00000001, 0x00060052,
0x00000017, 0x00001E03, 0x0000510B, 0x00003BEF, 0x00000001, 0x00050080,
0x0000000B, 0x0000494C, 0x00005EF3, 0x00000A1C, 0x00060041, 0x0000028E,
0x0000000B, 0x0000494C, 0x0000552E, 0x00000A1C, 0x00060041, 0x0000028E,
0x0000189E, 0x00000CC7, 0x00000A0B, 0x0000494C, 0x0004003D, 0x00000011,
0x000032EB, 0x0000189E, 0x00050051, 0x0000000B, 0x00004B25, 0x000032EB,
0x00000000, 0x00060052, 0x00000017, 0x00003BF0, 0x00004B25, 0x00001E03,

View File

@ -55,6 +55,7 @@
%1816 = OpConstantComposite %v2uint %uint_1 %uint_0
%uint_80 = OpConstant %uint 80
%2719 = OpConstantComposite %v2uint %uint_80 %uint_16
%uint_2048 = OpConstant %uint 2048
%int_5 = OpConstant %int 5
%uint_5 = OpConstant %uint 5
%uint_7 = OpConstant %uint 7
@ -84,20 +85,18 @@
%uint_1023 = OpConstant %uint 1023
%uint_10 = OpConstant %uint 10
%uint_13 = OpConstant %uint 13
%uint_4095 = OpConstant %uint 4095
%uint_25 = OpConstant %uint 25
%uint_2047 = OpConstant %uint 2047
%uint_24 = OpConstant %uint 24
%uint_15 = OpConstant %uint 15
%uint_28 = OpConstant %uint 28
%uint_19 = OpConstant %uint 19
%2179 = OpConstantComposite %v2uint %uint_16 %uint_19
%uint_1073741824 = OpConstant %uint 1073741824
%uint_536870912 = OpConstant %uint 536870912
%1855 = OpConstantComposite %v2uint %uint_0 %uint_4
%1856 = OpConstantComposite %v2uint %uint_4 %uint_1
%uint_2047 = OpConstant %uint 2047
%uint_16777216 = OpConstant %uint 16777216
%uint_20 = OpConstant %uint 20
%uint_24 = OpConstant %uint 24
%2275 = OpConstantComposite %v2uint %uint_20 %uint_24
%uint_28 = OpConstant %uint 28
%uint_4294901760 = OpConstant %uint 4294901760
%uint_65535 = OpConstant %uint 65535
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
@ -137,13 +136,13 @@
%20824 = OpLoad %uint %22700
%20561 = OpBitwiseAnd %uint %15627 %uint_1023
%19978 = OpShiftRightLogical %uint %15627 %uint_13
%8574 = OpBitwiseAnd %uint %19978 %uint_4095
%18836 = OpShiftRightLogical %uint %15627 %uint_25
%8574 = OpBitwiseAnd %uint %19978 %uint_2047
%18836 = OpShiftRightLogical %uint %15627 %uint_24
%9130 = OpBitwiseAnd %uint %18836 %uint_15
%8871 = OpCompositeConstruct %v2uint %20824 %20824
%9633 = OpShiftRightLogical %v2uint %8871 %2179
%23601 = OpBitwiseAnd %v2uint %9633 %1954
%24030 = OpBitwiseAnd %uint %15627 %uint_1073741824
%24030 = OpBitwiseAnd %uint %15627 %uint_536870912
%12295 = OpINotEqual %bool %24030 %uint_0
OpSelectionMerge %14676 None
OpBranchConditional %12295 %16739 %21992
@ -240,30 +239,32 @@
%22886 = OpIMul %uint %6805 %23526
%6886 = OpCompositeExtract %uint %20715 0
%9696 = OpIAdd %uint %22886 %6886
%19199 = OpShiftLeftLogical %uint %9696 %uint_1
%6269 = OpIAdd %uint %14551 %19199
%24307 = OpShiftRightLogical %uint %6269 %uint_1
%18708 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %24307
%21063 = OpLoad %v2uint %18708
%18021 = OpShiftLeftLogical %uint %9696 %uint_1
%18363 = OpIAdd %uint %14551 %18021
%13884 = OpIMul %uint %13170 %uint_2048
%19795 = OpUMod %uint %18363 %13884
%21806 = OpShiftRightLogical %uint %19795 %uint_1
%16281 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %21806
%21063 = OpLoad %v2uint %16281
%19234 = OpCompositeExtract %uint %21063 0
%15341 = OpCompositeInsert %v4uint %19234 %10264 0
%20745 = OpCompositeExtract %uint %21063 1
%7681 = OpCompositeInsert %v4uint %20745 %15341 1
%18762 = OpIAdd %uint %24307 %uint_2
%18762 = OpIAdd %uint %21806 %uint_2
%6300 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %18762
%13033 = OpLoad %v2uint %6300
%19235 = OpCompositeExtract %uint %13033 0
%15342 = OpCompositeInsert %v4uint %19235 %7681 2
%20746 = OpCompositeExtract %uint %13033 1
%7682 = OpCompositeInsert %v4uint %20746 %15342 3
%18763 = OpIAdd %uint %24307 %uint_4
%18763 = OpIAdd %uint %21806 %uint_4
%6301 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %18763
%13034 = OpLoad %v2uint %6301
%19236 = OpCompositeExtract %uint %13034 0
%15343 = OpCompositeInsert %v4uint %19236 %10264 0
%20747 = OpCompositeExtract %uint %13034 1
%7683 = OpCompositeInsert %v4uint %20747 %15343 1
%18764 = OpIAdd %uint %24307 %uint_6
%18764 = OpIAdd %uint %21806 %uint_6
%6302 = OpAccessChain %_ptr_Uniform_v2uint %3271 %int_0 %18764
%13035 = OpLoad %v2uint %6302
%19237 = OpCompositeExtract %uint %13035 0
@ -613,165 +614,166 @@ const uint32_t resolve_fast_64bpp_4xmsaa_scaled_cs[] = {
0x0005002C, 0x00000011, 0x00000724, 0x00000A0D, 0x00000A0D, 0x0005002C,
0x00000011, 0x00000718, 0x00000A0D, 0x00000A0A, 0x0004002B, 0x0000000B,
0x00000AFA, 0x00000050, 0x0005002C, 0x00000011, 0x00000A9F, 0x00000AFA,
0x00000A3A, 0x0004002B, 0x0000000C, 0x00000A1A, 0x00000005, 0x0004002B,
0x0000000B, 0x00000A19, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A1F,
0x00000007, 0x0004002B, 0x0000000C, 0x00000A20, 0x00000007, 0x0004002B,
0x0000000C, 0x00000A35, 0x0000000E, 0x0004002B, 0x0000000C, 0x00000A11,
0x00000002, 0x0004002B, 0x0000000C, 0x000009DB, 0xFFFFFFF0, 0x0004002B,
0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C, 0x00000A38,
0x0000000F, 0x0004002B, 0x0000000C, 0x00000A17, 0x00000004, 0x0004002B,
0x0000000C, 0x0000040B, 0xFFFFFE00, 0x0004002B, 0x0000000C, 0x00000A14,
0x00000003, 0x0004002B, 0x0000000C, 0x00000A3B, 0x00000010, 0x0004002B,
0x0000000C, 0x00000388, 0x000001C0, 0x0004002B, 0x0000000C, 0x00000A23,
0x00000008, 0x0004002B, 0x0000000C, 0x00000A1D, 0x00000006, 0x0004002B,
0x0000000C, 0x00000AC8, 0x0000003F, 0x0004002B, 0x0000000B, 0x00000A1C,
0x00000006, 0x0004002B, 0x0000000C, 0x0000078B, 0x0FFFFFFF, 0x0004002B,
0x0000000C, 0x00000A05, 0xFFFFFFFE, 0x0004002B, 0x0000000B, 0x00000A6A,
0x00000020, 0x0006001E, 0x000003F9, 0x0000000B, 0x0000000B, 0x0000000B,
0x0000000B, 0x00040020, 0x00000676, 0x00000009, 0x000003F9, 0x0004003B,
0x00000676, 0x0000118F, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B,
0x00000000, 0x00040020, 0x00000288, 0x00000009, 0x0000000B, 0x0004002B,
0x0000000B, 0x00000A44, 0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28,
0x0000000A, 0x0004002B, 0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B,
0x0000000B, 0x00000AFB, 0x00000FFF, 0x0004002B, 0x0000000B, 0x00000A55,
0x00000019, 0x0004002B, 0x0000000B, 0x00000A37, 0x0000000F, 0x0004002B,
0x0000000B, 0x00000A43, 0x00000013, 0x0005002C, 0x00000011, 0x00000883,
0x00000A3A, 0x00000A43, 0x0004002B, 0x0000000B, 0x00000018, 0x40000000,
0x0005002C, 0x00000011, 0x0000073F, 0x00000A0A, 0x00000A16, 0x0005002C,
0x00000011, 0x00000740, 0x00000A16, 0x00000A0D, 0x0004002B, 0x0000000B,
0x00000A81, 0x000007FF, 0x0004002B, 0x0000000B, 0x00000926, 0x01000000,
0x0004002B, 0x0000000B, 0x00000A46, 0x00000014, 0x0004002B, 0x0000000B,
0x00000A52, 0x00000018, 0x0005002C, 0x00000011, 0x000008E3, 0x00000A46,
0x00000A52, 0x0004002B, 0x0000000B, 0x00000A5E, 0x0000001C, 0x0004002B,
0x0000000B, 0x0000068D, 0xFFFF0000, 0x0004002B, 0x0000000B, 0x000001C1,
0x0000FFFF, 0x00040020, 0x00000291, 0x00000001, 0x00000014, 0x0004003B,
0x00000291, 0x00000F48, 0x00000001, 0x0005002C, 0x00000011, 0x00000721,
0x00000A10, 0x00000A0A, 0x0003001D, 0x000007D6, 0x00000011, 0x0003001E,
0x000007A8, 0x000007D6, 0x00040020, 0x00000A25, 0x00000002, 0x000007A8,
0x0004003B, 0x00000A25, 0x00000CC7, 0x00000002, 0x00040020, 0x0000028E,
0x00000002, 0x00000011, 0x0003001D, 0x000007DC, 0x00000017, 0x0003001E,
0x000007B4, 0x000007DC, 0x00040020, 0x00000A32, 0x00000002, 0x000007B4,
0x0004003B, 0x00000A32, 0x00001592, 0x00000002, 0x00040020, 0x00000294,
0x00000002, 0x00000017, 0x0006002C, 0x00000014, 0x00000AC7, 0x00000A22,
0x00000A22, 0x00000A0D, 0x00030001, 0x00000017, 0x00002818, 0x0005002C,
0x00000011, 0x000007A2, 0x00000A1F, 0x00000A1F, 0x0005002C, 0x00000011,
0x0000074E, 0x00000A13, 0x00000A13, 0x0005002C, 0x00000011, 0x0000084A,
0x00000A37, 0x00000A37, 0x0005002C, 0x00000011, 0x00000739, 0x00000A10,
0x00000A10, 0x0004002B, 0x0000000B, 0x00000A26, 0x00000009, 0x0007002C,
0x00000017, 0x00000755, 0x0000068D, 0x0000068D, 0x0000068D, 0x0000068D,
0x0007002C, 0x00000017, 0x00000352, 0x000001C1, 0x000001C1, 0x000001C1,
0x000001C1, 0x0007002C, 0x00000017, 0x000009CE, 0x000008A6, 0x000008A6,
0x000008A6, 0x000008A6, 0x0007002C, 0x00000017, 0x0000013D, 0x00000A22,
0x00000A22, 0x00000A22, 0x00000A22, 0x0007002C, 0x00000017, 0x0000072E,
0x000005FD, 0x000005FD, 0x000005FD, 0x000005FD, 0x0007002C, 0x00000017,
0x000002ED, 0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00000A3A, 0x00050036,
0x00000008, 0x0000161F, 0x00000000, 0x00000502, 0x000200F8, 0x00003B06,
0x000300F7, 0x00004C7A, 0x00000000, 0x000300FB, 0x00000A0A, 0x00002E68,
0x000200F8, 0x00002E68, 0x00050041, 0x00000288, 0x000056E5, 0x0000118F,
0x00000A0B, 0x0004003D, 0x0000000B, 0x00003D0B, 0x000056E5, 0x00050041,
0x00000288, 0x000058AC, 0x0000118F, 0x00000A0E, 0x0004003D, 0x0000000B,
0x00005158, 0x000058AC, 0x000500C7, 0x0000000B, 0x00005051, 0x00003D0B,
0x00000A44, 0x000500C2, 0x0000000B, 0x00004E0A, 0x00003D0B, 0x00000A31,
0x000500C7, 0x0000000B, 0x0000217E, 0x00004E0A, 0x00000AFB, 0x000500C2,
0x0000000B, 0x00004994, 0x00003D0B, 0x00000A55, 0x000500C7, 0x0000000B,
0x000023AA, 0x00004994, 0x00000A37, 0x00050050, 0x00000011, 0x000022A7,
0x00005158, 0x00005158, 0x000500C2, 0x00000011, 0x000025A1, 0x000022A7,
0x00000883, 0x000500C7, 0x00000011, 0x00005C31, 0x000025A1, 0x000007A2,
0x000500C7, 0x0000000B, 0x00005DDE, 0x00003D0B, 0x00000018, 0x000500AB,
0x00000009, 0x00003007, 0x00005DDE, 0x00000A0A, 0x000300F7, 0x00003954,
0x00000000, 0x000400FA, 0x00003007, 0x00004163, 0x000055E8, 0x000200F8,
0x000055E8, 0x000200F9, 0x00003954, 0x000200F8, 0x00004163, 0x000500C2,
0x00000011, 0x00003BAE, 0x00005C31, 0x00000724, 0x000200F9, 0x00003954,
0x000200F8, 0x00003954, 0x000700F5, 0x00000011, 0x00004A7B, 0x00003BAE,
0x00004163, 0x0000070F, 0x000055E8, 0x000500C2, 0x00000011, 0x0000189F,
0x000022A7, 0x0000073F, 0x000500C4, 0x00000011, 0x00002A91, 0x00000724,
0x00000740, 0x00050082, 0x00000011, 0x000048B0, 0x00002A91, 0x00000724,
0x000500C7, 0x00000011, 0x00004937, 0x0000189F, 0x000048B0, 0x000500C4,
0x00000011, 0x00005784, 0x00004937, 0x0000074E, 0x00050084, 0x00000011,
0x000059EB, 0x00005784, 0x00005C31, 0x000500C2, 0x0000000B, 0x00003343,
0x00005158, 0x00000A19, 0x000500C7, 0x0000000B, 0x000039C1, 0x00003343,
0x00000A81, 0x00050051, 0x0000000B, 0x0000229A, 0x00005C31, 0x00000000,
0x00050084, 0x0000000B, 0x000059D1, 0x000039C1, 0x0000229A, 0x00050041,
0x00000288, 0x00004E44, 0x0000118F, 0x00000A11, 0x0004003D, 0x0000000B,
0x000048C4, 0x00004E44, 0x00050041, 0x00000288, 0x000058AD, 0x0000118F,
0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7, 0x000058AD, 0x000500C7,
0x0000000B, 0x00004ADC, 0x000048C4, 0x00000A1F, 0x000500C7, 0x0000000B,
0x000055EF, 0x000048C4, 0x00000A22, 0x000500AB, 0x00000009, 0x0000500F,
0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B, 0x000028A2, 0x000048C4,
0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD, 0x000028A2, 0x00000A1F,
0x000500C7, 0x0000000B, 0x00005A4E, 0x000048C4, 0x00000926, 0x000500AB,
0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A, 0x000500C7, 0x0000000B,
0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4, 0x0000000B, 0x00003DA7,
0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B, 0x0000583F, 0x000051B7,
0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE, 0x0000583F, 0x00000A44,
0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE, 0x00000A19, 0x00050050,
0x00000011, 0x000028B6, 0x000051B7, 0x000051B7, 0x000500C2, 0x00000011,
0x00002891, 0x000028B6, 0x000008E3, 0x000500C7, 0x00000011, 0x00005B53,
0x00002891, 0x0000084A, 0x000500C4, 0x00000011, 0x00003F4F, 0x00005B53,
0x0000074E, 0x00050084, 0x00000011, 0x000059EC, 0x00003F4F, 0x00005C31,
0x000500C2, 0x0000000B, 0x000031C7, 0x000051B7, 0x00000A5E, 0x000500C7,
0x0000000B, 0x00004356, 0x000031C7, 0x00000A1F, 0x0004003D, 0x00000014,
0x000031C1, 0x00000F48, 0x0007004F, 0x00000011, 0x000038A4, 0x000031C1,
0x000031C1, 0x00000000, 0x00000001, 0x000500C4, 0x00000011, 0x00002EF9,
0x000038A4, 0x00000721, 0x00050051, 0x0000000B, 0x00001DD8, 0x00002EF9,
0x00000000, 0x000500C4, 0x0000000B, 0x00002D8A, 0x000059D1, 0x00000A13,
0x000500AE, 0x00000009, 0x00003C13, 0x00001DD8, 0x00002D8A, 0x000300F7,
0x000036C9, 0x00000002, 0x000400FA, 0x00003C13, 0x000055E9, 0x000036C9,
0x000200F8, 0x000055E9, 0x000200F9, 0x00004C7A, 0x000200F8, 0x000036C9,
0x00050051, 0x0000000B, 0x000048B7, 0x00002EF9, 0x00000001, 0x00050051,
0x0000000B, 0x000041A3, 0x00004A7B, 0x00000001, 0x0007000C, 0x0000000B,
0x00005F7E, 0x00000001, 0x00000029, 0x000048B7, 0x000041A3, 0x00050050,
0x00000011, 0x000051EF, 0x00001DD8, 0x00005F7E, 0x00050080, 0x00000011,
0x0000522C, 0x000051EF, 0x000059EB, 0x000500B2, 0x00000009, 0x00003ECB,
0x00004356, 0x00000A13, 0x000300F7, 0x0000195B, 0x00000000, 0x000400FA,
0x00003ECB, 0x00002AEE, 0x00003AEF, 0x000200F8, 0x00003AEF, 0x000500AA,
0x00000009, 0x000034FE, 0x00004356, 0x00000A19, 0x000600A9, 0x0000000B,
0x000020F6, 0x000034FE, 0x00000A10, 0x00000A0A, 0x000200F9, 0x0000195B,
0x000200F8, 0x00002AEE, 0x000200F9, 0x0000195B, 0x000200F8, 0x0000195B,
0x000700F5, 0x0000000B, 0x000055FE, 0x00004356, 0x00002AEE, 0x000020F6,
0x00003AEF, 0x000500AE, 0x0000000F, 0x00005BE0, 0x00000739, 0x0000072D,
0x000600A9, 0x00000011, 0x00001E5B, 0x00005BE0, 0x00000724, 0x0000070F,
0x000500C4, 0x00000011, 0x00002AEA, 0x0000522C, 0x00001E5B, 0x00050050,
0x00000011, 0x0000605D, 0x000055FE, 0x000055FE, 0x000500C2, 0x00000011,
0x00002385, 0x0000605D, 0x00000718, 0x000500C7, 0x00000011, 0x00003EC8,
0x00002385, 0x00000724, 0x00050080, 0x00000011, 0x00004F30, 0x00002AEA,
0x00003EC8, 0x00050084, 0x00000011, 0x00005299, 0x00000A9F, 0x00005C31,
0x000500C2, 0x00000011, 0x00003985, 0x00005299, 0x00000718, 0x00050086,
0x00000011, 0x00004D57, 0x00004F30, 0x00003985, 0x00050051, 0x0000000B,
0x00004FA6, 0x00004D57, 0x00000001, 0x00050084, 0x0000000B, 0x00002B26,
0x00004FA6, 0x00005051, 0x00050051, 0x0000000B, 0x00006059, 0x00004D57,
0x00000000, 0x00050080, 0x0000000B, 0x00005420, 0x00002B26, 0x00006059,
0x00050080, 0x0000000B, 0x00002226, 0x0000217E, 0x00005420, 0x00050084,
0x00000011, 0x00005768, 0x00004D57, 0x00003985, 0x00050082, 0x00000011,
0x000050EB, 0x00004F30, 0x00005768, 0x00050051, 0x0000000B, 0x00001C87,
0x00005299, 0x00000000, 0x00050051, 0x0000000B, 0x00005962, 0x00005299,
0x00000001, 0x00050084, 0x0000000B, 0x00003372, 0x00001C87, 0x00005962,
0x00050084, 0x0000000B, 0x000038D7, 0x00002226, 0x00003372, 0x00050051,
0x0000000B, 0x00001A95, 0x000050EB, 0x00000001, 0x00050051, 0x0000000B,
0x00005BE6, 0x00003985, 0x00000000, 0x00050084, 0x0000000B, 0x00005966,
0x00001A95, 0x00005BE6, 0x00050051, 0x0000000B, 0x00001AE6, 0x000050EB,
0x00000000, 0x00050080, 0x0000000B, 0x000025E0, 0x00005966, 0x00001AE6,
0x000500C4, 0x0000000B, 0x00004AFF, 0x000025E0, 0x00000A0D, 0x00050080,
0x0000000B, 0x0000187D, 0x000038D7, 0x00004AFF, 0x000500C2, 0x0000000B,
0x00005EF3, 0x0000187D, 0x00000A0D, 0x00060041, 0x0000028E, 0x00004914,
0x00000CC7, 0x00000A0B, 0x00005EF3, 0x0004003D, 0x00000011, 0x00005247,
0x00004914, 0x00050051, 0x0000000B, 0x00004B22, 0x00005247, 0x00000000,
0x00000A3A, 0x0004002B, 0x0000000B, 0x00000A84, 0x00000800, 0x0004002B,
0x0000000C, 0x00000A1A, 0x00000005, 0x0004002B, 0x0000000B, 0x00000A19,
0x00000005, 0x0004002B, 0x0000000B, 0x00000A1F, 0x00000007, 0x0004002B,
0x0000000C, 0x00000A20, 0x00000007, 0x0004002B, 0x0000000C, 0x00000A35,
0x0000000E, 0x0004002B, 0x0000000C, 0x00000A11, 0x00000002, 0x0004002B,
0x0000000C, 0x000009DB, 0xFFFFFFF0, 0x0004002B, 0x0000000C, 0x00000A0E,
0x00000001, 0x0004002B, 0x0000000C, 0x00000A38, 0x0000000F, 0x0004002B,
0x0000000C, 0x00000A17, 0x00000004, 0x0004002B, 0x0000000C, 0x0000040B,
0xFFFFFE00, 0x0004002B, 0x0000000C, 0x00000A14, 0x00000003, 0x0004002B,
0x0000000C, 0x00000A3B, 0x00000010, 0x0004002B, 0x0000000C, 0x00000388,
0x000001C0, 0x0004002B, 0x0000000C, 0x00000A23, 0x00000008, 0x0004002B,
0x0000000C, 0x00000A1D, 0x00000006, 0x0004002B, 0x0000000C, 0x00000AC8,
0x0000003F, 0x0004002B, 0x0000000B, 0x00000A1C, 0x00000006, 0x0004002B,
0x0000000C, 0x0000078B, 0x0FFFFFFF, 0x0004002B, 0x0000000C, 0x00000A05,
0xFFFFFFFE, 0x0004002B, 0x0000000B, 0x00000A6A, 0x00000020, 0x0006001E,
0x000003F9, 0x0000000B, 0x0000000B, 0x0000000B, 0x0000000B, 0x00040020,
0x00000676, 0x00000009, 0x000003F9, 0x0004003B, 0x00000676, 0x0000118F,
0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x00040020,
0x00000288, 0x00000009, 0x0000000B, 0x0004002B, 0x0000000B, 0x00000A44,
0x000003FF, 0x0004002B, 0x0000000B, 0x00000A28, 0x0000000A, 0x0004002B,
0x0000000B, 0x00000A31, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000A81,
0x000007FF, 0x0004002B, 0x0000000B, 0x00000A52, 0x00000018, 0x0004002B,
0x0000000B, 0x00000A37, 0x0000000F, 0x0004002B, 0x0000000B, 0x00000A5E,
0x0000001C, 0x0004002B, 0x0000000B, 0x00000A43, 0x00000013, 0x0005002C,
0x00000011, 0x00000883, 0x00000A3A, 0x00000A43, 0x0004002B, 0x0000000B,
0x00000510, 0x20000000, 0x0005002C, 0x00000011, 0x0000073F, 0x00000A0A,
0x00000A16, 0x0005002C, 0x00000011, 0x00000740, 0x00000A16, 0x00000A0D,
0x0004002B, 0x0000000B, 0x00000926, 0x01000000, 0x0004002B, 0x0000000B,
0x00000A46, 0x00000014, 0x0005002C, 0x00000011, 0x000008E3, 0x00000A46,
0x00000A52, 0x0004002B, 0x0000000B, 0x0000068D, 0xFFFF0000, 0x0004002B,
0x0000000B, 0x000001C1, 0x0000FFFF, 0x00040020, 0x00000291, 0x00000001,
0x00000014, 0x0004003B, 0x00000291, 0x00000F48, 0x00000001, 0x0005002C,
0x00000011, 0x00000721, 0x00000A10, 0x00000A0A, 0x0003001D, 0x000007D6,
0x00000011, 0x0003001E, 0x000007A8, 0x000007D6, 0x00040020, 0x00000A25,
0x00000002, 0x000007A8, 0x0004003B, 0x00000A25, 0x00000CC7, 0x00000002,
0x00040020, 0x0000028E, 0x00000002, 0x00000011, 0x0003001D, 0x000007DC,
0x00000017, 0x0003001E, 0x000007B4, 0x000007DC, 0x00040020, 0x00000A32,
0x00000002, 0x000007B4, 0x0004003B, 0x00000A32, 0x00001592, 0x00000002,
0x00040020, 0x00000294, 0x00000002, 0x00000017, 0x0006002C, 0x00000014,
0x00000AC7, 0x00000A22, 0x00000A22, 0x00000A0D, 0x00030001, 0x00000017,
0x00002818, 0x0005002C, 0x00000011, 0x000007A2, 0x00000A1F, 0x00000A1F,
0x0005002C, 0x00000011, 0x0000074E, 0x00000A13, 0x00000A13, 0x0005002C,
0x00000011, 0x0000084A, 0x00000A37, 0x00000A37, 0x0005002C, 0x00000011,
0x00000739, 0x00000A10, 0x00000A10, 0x0004002B, 0x0000000B, 0x00000A26,
0x00000009, 0x0007002C, 0x00000017, 0x00000755, 0x0000068D, 0x0000068D,
0x0000068D, 0x0000068D, 0x0007002C, 0x00000017, 0x00000352, 0x000001C1,
0x000001C1, 0x000001C1, 0x000001C1, 0x0007002C, 0x00000017, 0x000009CE,
0x000008A6, 0x000008A6, 0x000008A6, 0x000008A6, 0x0007002C, 0x00000017,
0x0000013D, 0x00000A22, 0x00000A22, 0x00000A22, 0x00000A22, 0x0007002C,
0x00000017, 0x0000072E, 0x000005FD, 0x000005FD, 0x000005FD, 0x000005FD,
0x0007002C, 0x00000017, 0x000002ED, 0x00000A3A, 0x00000A3A, 0x00000A3A,
0x00000A3A, 0x00050036, 0x00000008, 0x0000161F, 0x00000000, 0x00000502,
0x000200F8, 0x00003B06, 0x000300F7, 0x00004C7A, 0x00000000, 0x000300FB,
0x00000A0A, 0x00002E68, 0x000200F8, 0x00002E68, 0x00050041, 0x00000288,
0x000056E5, 0x0000118F, 0x00000A0B, 0x0004003D, 0x0000000B, 0x00003D0B,
0x000056E5, 0x00050041, 0x00000288, 0x000058AC, 0x0000118F, 0x00000A0E,
0x0004003D, 0x0000000B, 0x00005158, 0x000058AC, 0x000500C7, 0x0000000B,
0x00005051, 0x00003D0B, 0x00000A44, 0x000500C2, 0x0000000B, 0x00004E0A,
0x00003D0B, 0x00000A31, 0x000500C7, 0x0000000B, 0x0000217E, 0x00004E0A,
0x00000A81, 0x000500C2, 0x0000000B, 0x00004994, 0x00003D0B, 0x00000A52,
0x000500C7, 0x0000000B, 0x000023AA, 0x00004994, 0x00000A37, 0x00050050,
0x00000011, 0x000022A7, 0x00005158, 0x00005158, 0x000500C2, 0x00000011,
0x000025A1, 0x000022A7, 0x00000883, 0x000500C7, 0x00000011, 0x00005C31,
0x000025A1, 0x000007A2, 0x000500C7, 0x0000000B, 0x00005DDE, 0x00003D0B,
0x00000510, 0x000500AB, 0x00000009, 0x00003007, 0x00005DDE, 0x00000A0A,
0x000300F7, 0x00003954, 0x00000000, 0x000400FA, 0x00003007, 0x00004163,
0x000055E8, 0x000200F8, 0x000055E8, 0x000200F9, 0x00003954, 0x000200F8,
0x00004163, 0x000500C2, 0x00000011, 0x00003BAE, 0x00005C31, 0x00000724,
0x000200F9, 0x00003954, 0x000200F8, 0x00003954, 0x000700F5, 0x00000011,
0x00004A7B, 0x00003BAE, 0x00004163, 0x0000070F, 0x000055E8, 0x000500C2,
0x00000011, 0x0000189F, 0x000022A7, 0x0000073F, 0x000500C4, 0x00000011,
0x00002A91, 0x00000724, 0x00000740, 0x00050082, 0x00000011, 0x000048B0,
0x00002A91, 0x00000724, 0x000500C7, 0x00000011, 0x00004937, 0x0000189F,
0x000048B0, 0x000500C4, 0x00000011, 0x00005784, 0x00004937, 0x0000074E,
0x00050084, 0x00000011, 0x000059EB, 0x00005784, 0x00005C31, 0x000500C2,
0x0000000B, 0x00003343, 0x00005158, 0x00000A19, 0x000500C7, 0x0000000B,
0x000039C1, 0x00003343, 0x00000A81, 0x00050051, 0x0000000B, 0x0000229A,
0x00005C31, 0x00000000, 0x00050084, 0x0000000B, 0x000059D1, 0x000039C1,
0x0000229A, 0x00050041, 0x00000288, 0x00004E44, 0x0000118F, 0x00000A11,
0x0004003D, 0x0000000B, 0x000048C4, 0x00004E44, 0x00050041, 0x00000288,
0x000058AD, 0x0000118F, 0x00000A14, 0x0004003D, 0x0000000B, 0x000051B7,
0x000058AD, 0x000500C7, 0x0000000B, 0x00004ADC, 0x000048C4, 0x00000A1F,
0x000500C7, 0x0000000B, 0x000055EF, 0x000048C4, 0x00000A22, 0x000500AB,
0x00000009, 0x0000500F, 0x000055EF, 0x00000A0A, 0x000500C2, 0x0000000B,
0x000028A2, 0x000048C4, 0x00000A16, 0x000500C7, 0x0000000B, 0x000059FD,
0x000028A2, 0x00000A1F, 0x000500C7, 0x0000000B, 0x00005A4E, 0x000048C4,
0x00000926, 0x000500AB, 0x00000009, 0x00004C75, 0x00005A4E, 0x00000A0A,
0x000500C7, 0x0000000B, 0x00001F43, 0x000051B7, 0x00000A44, 0x000500C4,
0x0000000B, 0x00003DA7, 0x00001F43, 0x00000A19, 0x000500C2, 0x0000000B,
0x0000583F, 0x000051B7, 0x00000A28, 0x000500C7, 0x0000000B, 0x00004BBE,
0x0000583F, 0x00000A44, 0x000500C4, 0x0000000B, 0x00006273, 0x00004BBE,
0x00000A19, 0x00050050, 0x00000011, 0x000028B6, 0x000051B7, 0x000051B7,
0x000500C2, 0x00000011, 0x00002891, 0x000028B6, 0x000008E3, 0x000500C7,
0x00000011, 0x00005B53, 0x00002891, 0x0000084A, 0x000500C4, 0x00000011,
0x00003F4F, 0x00005B53, 0x0000074E, 0x00050084, 0x00000011, 0x000059EC,
0x00003F4F, 0x00005C31, 0x000500C2, 0x0000000B, 0x000031C7, 0x000051B7,
0x00000A5E, 0x000500C7, 0x0000000B, 0x00004356, 0x000031C7, 0x00000A1F,
0x0004003D, 0x00000014, 0x000031C1, 0x00000F48, 0x0007004F, 0x00000011,
0x000038A4, 0x000031C1, 0x000031C1, 0x00000000, 0x00000001, 0x000500C4,
0x00000011, 0x00002EF9, 0x000038A4, 0x00000721, 0x00050051, 0x0000000B,
0x00001DD8, 0x00002EF9, 0x00000000, 0x000500C4, 0x0000000B, 0x00002D8A,
0x000059D1, 0x00000A13, 0x000500AE, 0x00000009, 0x00003C13, 0x00001DD8,
0x00002D8A, 0x000300F7, 0x000036C9, 0x00000002, 0x000400FA, 0x00003C13,
0x000055E9, 0x000036C9, 0x000200F8, 0x000055E9, 0x000200F9, 0x00004C7A,
0x000200F8, 0x000036C9, 0x00050051, 0x0000000B, 0x000048B7, 0x00002EF9,
0x00000001, 0x00050051, 0x0000000B, 0x000041A3, 0x00004A7B, 0x00000001,
0x0007000C, 0x0000000B, 0x00005F7E, 0x00000001, 0x00000029, 0x000048B7,
0x000041A3, 0x00050050, 0x00000011, 0x000051EF, 0x00001DD8, 0x00005F7E,
0x00050080, 0x00000011, 0x0000522C, 0x000051EF, 0x000059EB, 0x000500B2,
0x00000009, 0x00003ECB, 0x00004356, 0x00000A13, 0x000300F7, 0x0000195B,
0x00000000, 0x000400FA, 0x00003ECB, 0x00002AEE, 0x00003AEF, 0x000200F8,
0x00003AEF, 0x000500AA, 0x00000009, 0x000034FE, 0x00004356, 0x00000A19,
0x000600A9, 0x0000000B, 0x000020F6, 0x000034FE, 0x00000A10, 0x00000A0A,
0x000200F9, 0x0000195B, 0x000200F8, 0x00002AEE, 0x000200F9, 0x0000195B,
0x000200F8, 0x0000195B, 0x000700F5, 0x0000000B, 0x000055FE, 0x00004356,
0x00002AEE, 0x000020F6, 0x00003AEF, 0x000500AE, 0x0000000F, 0x00005BE0,
0x00000739, 0x0000072D, 0x000600A9, 0x00000011, 0x00001E5B, 0x00005BE0,
0x00000724, 0x0000070F, 0x000500C4, 0x00000011, 0x00002AEA, 0x0000522C,
0x00001E5B, 0x00050050, 0x00000011, 0x0000605D, 0x000055FE, 0x000055FE,
0x000500C2, 0x00000011, 0x00002385, 0x0000605D, 0x00000718, 0x000500C7,
0x00000011, 0x00003EC8, 0x00002385, 0x00000724, 0x00050080, 0x00000011,
0x00004F30, 0x00002AEA, 0x00003EC8, 0x00050084, 0x00000011, 0x00005299,
0x00000A9F, 0x00005C31, 0x000500C2, 0x00000011, 0x00003985, 0x00005299,
0x00000718, 0x00050086, 0x00000011, 0x00004D57, 0x00004F30, 0x00003985,
0x00050051, 0x0000000B, 0x00004FA6, 0x00004D57, 0x00000001, 0x00050084,
0x0000000B, 0x00002B26, 0x00004FA6, 0x00005051, 0x00050051, 0x0000000B,
0x00006059, 0x00004D57, 0x00000000, 0x00050080, 0x0000000B, 0x00005420,
0x00002B26, 0x00006059, 0x00050080, 0x0000000B, 0x00002226, 0x0000217E,
0x00005420, 0x00050084, 0x00000011, 0x00005768, 0x00004D57, 0x00003985,
0x00050082, 0x00000011, 0x000050EB, 0x00004F30, 0x00005768, 0x00050051,
0x0000000B, 0x00001C87, 0x00005299, 0x00000000, 0x00050051, 0x0000000B,
0x00005962, 0x00005299, 0x00000001, 0x00050084, 0x0000000B, 0x00003372,
0x00001C87, 0x00005962, 0x00050084, 0x0000000B, 0x000038D7, 0x00002226,
0x00003372, 0x00050051, 0x0000000B, 0x00001A95, 0x000050EB, 0x00000001,
0x00050051, 0x0000000B, 0x00005BE6, 0x00003985, 0x00000000, 0x00050084,
0x0000000B, 0x00005966, 0x00001A95, 0x00005BE6, 0x00050051, 0x0000000B,
0x00001AE6, 0x000050EB, 0x00000000, 0x00050080, 0x0000000B, 0x000025E0,
0x00005966, 0x00001AE6, 0x000500C4, 0x0000000B, 0x00004665, 0x000025E0,
0x00000A0D, 0x00050080, 0x0000000B, 0x000047BB, 0x000038D7, 0x00004665,
0x00050084, 0x0000000B, 0x0000363C, 0x00003372, 0x00000A84, 0x00050089,
0x0000000B, 0x00004D53, 0x000047BB, 0x0000363C, 0x000500C2, 0x0000000B,
0x0000552E, 0x00004D53, 0x00000A0D, 0x00060041, 0x0000028E, 0x00003F99,
0x00000CC7, 0x00000A0B, 0x0000552E, 0x0004003D, 0x00000011, 0x00005247,
0x00003F99, 0x00050051, 0x0000000B, 0x00004B22, 0x00005247, 0x00000000,
0x00060052, 0x00000017, 0x00003BED, 0x00004B22, 0x00002818, 0x00000000,
0x00050051, 0x0000000B, 0x00005109, 0x00005247, 0x00000001, 0x00060052,
0x00000017, 0x00001E01, 0x00005109, 0x00003BED, 0x00000001, 0x00050080,
0x0000000B, 0x0000494A, 0x00005EF3, 0x00000A10, 0x00060041, 0x0000028E,
0x0000000B, 0x0000494A, 0x0000552E, 0x00000A10, 0x00060041, 0x0000028E,
0x0000189C, 0x00000CC7, 0x00000A0B, 0x0000494A, 0x0004003D, 0x00000011,
0x000032E9, 0x0000189C, 0x00050051, 0x0000000B, 0x00004B23, 0x000032E9,
0x00000000, 0x00060052, 0x00000017, 0x00003BEE, 0x00004B23, 0x00001E01,
0x00000002, 0x00050051, 0x0000000B, 0x0000510A, 0x000032E9, 0x00000001,
0x00060052, 0x00000017, 0x00001E02, 0x0000510A, 0x00003BEE, 0x00000003,
0x00050080, 0x0000000B, 0x0000494B, 0x00005EF3, 0x00000A16, 0x00060041,
0x00050080, 0x0000000B, 0x0000494B, 0x0000552E, 0x00000A16, 0x00060041,
0x0000028E, 0x0000189D, 0x00000CC7, 0x00000A0B, 0x0000494B, 0x0004003D,
0x00000011, 0x000032EA, 0x0000189D, 0x00050051, 0x0000000B, 0x00004B24,
0x000032EA, 0x00000000, 0x00060052, 0x00000017, 0x00003BEF, 0x00004B24,
0x00002818, 0x00000000, 0x00050051, 0x0000000B, 0x0000510B, 0x000032EA,
0x00000001, 0x00060052, 0x00000017, 0x00001E03, 0x0000510B, 0x00003BEF,
0x00000001, 0x00050080, 0x0000000B, 0x0000494C, 0x00005EF3, 0x00000A1C,
0x00000001, 0x00050080, 0x0000000B, 0x0000494C, 0x0000552E, 0x00000A1C,
0x00060041, 0x0000028E, 0x0000189E, 0x00000CC7, 0x00000A0B, 0x0000494C,
0x0004003D, 0x00000011, 0x000032EB, 0x0000189E, 0x00050051, 0x0000000B,
0x00004B25, 0x000032EB, 0x00000000, 0x00060052, 0x00000017, 0x00003BF0,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,11 @@
#define kXenosMsaaSamples_2X 1u
#define kXenosMsaaSamples_4X 2u
uint XeEdramOffsetInts(xesl_uint2 pixel_index, uint base_tiles,
// `wrap = false` can be used if it's known that the resulting tile indices
// can't exceed 11 bits, and the modulo operator doesn't need to be performed to
// access the data in the render targets that are located in both ends of the
// EDRAM at the same time.
uint XeEdramOffsetInts(xesl_uint2 pixel_index, uint base_tiles, bool wrap,
uint pitch_tiles, uint msaa_samples, bool is_depth,
uint format_ints_log2, uint pixel_sample_index,
xesl_uint2 resolution_scale) {
@ -43,9 +47,15 @@ uint XeEdramOffsetInts(xesl_uint2 pixel_index, uint base_tiles,
((rt_sample_index.x >= tile_width_half) ? -int(tile_width_half)
: int(tile_width_half)));
}
return base_tiles * (tile_size_at_32bpp.x * tile_size_at_32bpp.y) +
((rt_sample_index.y * tile_size_samples.x + rt_sample_index.x) <<
format_ints_log2);
uint address =
base_tiles * (tile_size_at_32bpp.x * tile_size_at_32bpp.y) +
((rt_sample_index.y * tile_size_samples.x + rt_sample_index.x) <<
format_ints_log2);
if (wrap) {
// EDRAM addressing is periodic (modulo the EDRAM size).
address %= tile_size_at_32bpp.x * tile_size_at_32bpp.y * 2048u;
}
return address;
}
#endif // XENIA_GPU_SHADERS_EDRAM_XESLI_

View File

@ -41,7 +41,7 @@ xesl_entry_inputs_end_code_begin_compute
XeHostDepthStoreRectUnscaledOrigin(rect_constant) * resolution_scale +
(xesl_GlobalInvocationID.xy << xesl_uint2(3u, 0u)));
uint edram_address_int4s =
XeEdramOffsetInts(xesl_uint2(pixel_index), 0u,
XeEdramOffsetInts(xesl_uint2(pixel_index), 0u, false,
XeHostDepthStoreRTPitchTiles(rt_constant),
kXenosMsaaSamples_1X, false, 0u, 0u,
resolution_scale)

View File

@ -43,7 +43,7 @@ xesl_entry_inputs_end_code_begin_compute
xesl_GlobalInvocationID.y >> 1u));
uint dest_sample_index = xesl_GlobalInvocationID.y & 1u;
uint edram_address_int4s =
XeEdramOffsetInts(xesl_uint2(pixel_index), 0u,
XeEdramOffsetInts(xesl_uint2(pixel_index), 0u, false,
XeHostDepthStoreRTPitchTiles(rt_constant),
kXenosMsaaSamples_2X, false, 0u, dest_sample_index,
resolution_scale)

View File

@ -45,8 +45,8 @@ xesl_entry_inputs_end_code_begin_compute
uint edram_address_int4s =
XeEdramOffsetInts(
(xesl_uint2(pixel_index) << 1u) | (xesl_GlobalInvocationID.xy & 1u),
0u, XeHostDepthStoreRTPitchTiles(rt_constant), kXenosMsaaSamples_1X,
false, 0u, 0u, resolution_scale)
0u, false, XeHostDepthStoreRTPitchTiles(rt_constant),
kXenosMsaaSamples_1X, false, 0u, 0u, resolution_scale)
>> 2u;
// Render target horizontal sample in bit 0, vertical sample in bit 1.
int source_sample_left = int((xesl_GlobalInvocationID.y & 1u) << 1u);

View File

@ -94,13 +94,13 @@ XeResolveInfo XeResolveGetInfo(xesl_function_param_pushConstants) {
resolve_info.edram_pitch_tiles = edram_info & ((1u << 10u) - 1u);
resolve_info.edram_msaa_samples = (edram_info >> 10u) & ((1u << 2u) - 1u);
resolve_info.edram_is_depth = (edram_info & (1u << 12u)) != 0u;
resolve_info.edram_base_tiles = (edram_info >> 13u) & ((1u << 12u) - 1u);
resolve_info.edram_format = (edram_info >> 25u) & ((1u << 4u) - 1u);
resolve_info.edram_format_ints_log2 = (edram_info >> 29u) & 1u;
resolve_info.edram_base_tiles = (edram_info >> 13u) & ((1u << 11u) - 1u);
resolve_info.edram_format = (edram_info >> 24u) & ((1u << 4u) - 1u);
resolve_info.edram_format_ints_log2 = (edram_info >> 28u) & 1u;
#ifdef XE_RESOLVE_RESOLUTION_SCALED
resolve_info.resolution_scale =
(xesl_uint_x2(coordinate_info) >> xesl_uint2(16u, 19u)) & 7u;
if ((edram_info & (1u << 30u)) != 0u) {
if ((edram_info & (1u << 29u)) != 0u) {
resolve_info.half_pixel_offset_fill_source =
resolve_info.resolution_scale >> 1u;
} else {
@ -224,7 +224,7 @@ uint XeResolveEdramPixelStrideInts(XeResolveInfo resolve_info) {
max(pixel_index.y,
resolve_info.half_pixel_offset_fill_source.y)) +
resolve_info.edram_offset_scaled,
resolve_info.edram_base_tiles, resolve_info.edram_pitch_tiles,
resolve_info.edram_base_tiles, true, resolve_info.edram_pitch_tiles,
resolve_info.edram_msaa_samples, false,
resolve_info.edram_format_ints_log2,
XeResolveFirstSampleIndex(resolve_info.sample_select),

View File

@ -39,7 +39,7 @@ xesl_entry_inputs_end_code_begin_compute
XeEdramOffsetInts(
(xesl_GlobalInvocationID.xy << xesl_uint2(3u, 0u)) +
(resolve_info.edram_offset_scaled << extent_scale),
resolve_info.edram_base_tiles, resolve_info.edram_pitch_tiles,
resolve_info.edram_base_tiles, true, resolve_info.edram_pitch_tiles,
kXenosMsaaSamples_1X, resolve_info.edram_is_depth, 0u, 0u,
resolve_info.resolution_scale)
>> 2u;

View File

@ -39,7 +39,7 @@ xesl_entry_inputs_end_code_begin_compute
XeEdramOffsetInts(
(xesl_GlobalInvocationID.xy << xesl_uint2(3u, 0u)) +
(resolve_info.edram_offset_scaled << extent_scale),
resolve_info.edram_base_tiles, resolve_info.edram_pitch_tiles,
resolve_info.edram_base_tiles, true, resolve_info.edram_pitch_tiles,
kXenosMsaaSamples_1X, false, 1u, 0u, resolve_info.resolution_scale)
>> 2u;
uint i;

View File

@ -41,7 +41,7 @@ xesl_entry_inputs_end_code_begin_compute
max(pixel_index.y,
resolve_info.half_pixel_offset_fill_source.y)) +
resolve_info.edram_offset_scaled,
resolve_info.edram_base_tiles, resolve_info.edram_pitch_tiles,
resolve_info.edram_base_tiles, true, resolve_info.edram_pitch_tiles,
resolve_info.edram_msaa_samples, resolve_info.edram_is_depth, 0u,
XeResolveFirstSampleIndex(resolve_info.sample_select),
resolve_info.resolution_scale)

View File

@ -41,7 +41,7 @@ xesl_entry_inputs_end_code_begin_compute
max(pixel_index.y,
resolve_info.half_pixel_offset_fill_source.y)) +
resolve_info.edram_offset_scaled,
resolve_info.edram_base_tiles, resolve_info.edram_pitch_tiles,
resolve_info.edram_base_tiles, true, resolve_info.edram_pitch_tiles,
kXenosMsaaSamples_4X, resolve_info.edram_is_depth, 0u,
XeResolveFirstSampleIndex(resolve_info.sample_select),
resolve_info.resolution_scale)

View File

@ -41,7 +41,7 @@ xesl_entry_inputs_end_code_begin_compute
max(pixel_index.y,
resolve_info.half_pixel_offset_fill_source.y)) +
resolve_info.edram_offset_scaled,
resolve_info.edram_base_tiles, resolve_info.edram_pitch_tiles,
resolve_info.edram_base_tiles, true, resolve_info.edram_pitch_tiles,
resolve_info.edram_msaa_samples, false, 1u,
XeResolveFirstSampleIndex(resolve_info.sample_select),
resolve_info.resolution_scale)

View File

@ -41,7 +41,7 @@ xesl_entry_inputs_end_code_begin_compute
max(pixel_index.y,
resolve_info.half_pixel_offset_fill_source.y)) +
resolve_info.edram_offset_scaled,
resolve_info.edram_base_tiles, resolve_info.edram_pitch_tiles,
resolve_info.edram_base_tiles, true, resolve_info.edram_pitch_tiles,
kXenosMsaaSamples_4X, false, 1u,
XeResolveFirstSampleIndex(resolve_info.sample_select),
resolve_info.resolution_scale)

View File

@ -2657,17 +2657,24 @@ VkShaderModule VulkanRenderTargetCache::GetTransferShader(
-int32_t(source_32bpp_tile_half_pixels)))));
}
// Transform the destination 32bpp tile index into the source.
spv::Id source_tile_index = builder.createUnaryOp(
spv::OpBitcast, type_uint,
builder.createBinOp(
spv::OpIAdd, type_int,
builder.createUnaryOp(spv::OpBitcast, type_int, dest_tile_index),
builder.createTriOp(
spv::OpBitFieldSExtract, type_int,
builder.createUnaryOp(spv::OpBitcast, type_int, address_constant),
builder.makeUintConstant(xenos::kEdramPitchTilesBits * 2),
builder.makeUintConstant(xenos::kEdramBaseTilesBits))));
// Transform the destination 32bpp tile index into the source. After the
// addition, it may be negative - in which case, the transfer is done across
// EDRAM addressing wrapping, and xenos::kEdramTileCount must be added to it,
// but `& (xenos::kEdramTileCount - 1)` handles that regardless of the sign.
spv::Id source_tile_index = builder.createBinOp(
spv::OpBitwiseAnd, type_uint,
builder.createUnaryOp(
spv::OpBitcast, type_uint,
builder.createBinOp(
spv::OpIAdd, type_int,
builder.createUnaryOp(spv::OpBitcast, type_int, dest_tile_index),
builder.createTriOp(
spv::OpBitFieldSExtract, type_int,
builder.createUnaryOp(spv::OpBitcast, type_int,
address_constant),
builder.makeUintConstant(xenos::kEdramPitchTilesBits * 2),
builder.makeUintConstant(xenos::kEdramBaseTilesBits + 1)))),
builder.makeUintConstant(xenos::kEdramTileCount - 1));
// Split the source 32bpp tile index into X and Y tile index within the source
// image.
spv::Id source_pitch_tiles = builder.createTriOp(
@ -3724,19 +3731,28 @@ VkShaderModule VulkanRenderTargetCache::GetTransferShader(
push_constants, id_vector_temp),
spv::NoPrecision);
// Transform the destination tile index into the host depth source.
spv::Id host_depth_source_tile_index = builder.createUnaryOp(
spv::OpBitcast, type_uint,
builder.createBinOp(
spv::OpIAdd, type_int,
builder.createUnaryOp(spv::OpBitcast, type_int,
dest_tile_index),
builder.createTriOp(
spv::OpBitFieldSExtract, type_int,
// After the addition, it may be negative - in which case, the
// transfer is done across EDRAM addressing wrapping, and
// xenos::kEdramTileCount must be added to it, but
// `& (xenos::kEdramTileCount - 1)` handles that regardless of the
// sign.
spv::Id host_depth_source_tile_index = builder.createBinOp(
spv::OpBitwiseAnd, type_uint,
builder.createUnaryOp(
spv::OpBitcast, type_uint,
builder.createBinOp(
spv::OpIAdd, type_int,
builder.createUnaryOp(spv::OpBitcast, type_int,
host_depth_address_constant),
builder.makeUintConstant(xenos::kEdramPitchTilesBits *
2),
builder.makeUintConstant(xenos::kEdramBaseTilesBits))));
dest_tile_index),
builder.createTriOp(
spv::OpBitFieldSExtract, type_int,
builder.createUnaryOp(spv::OpBitcast, type_int,
host_depth_address_constant),
builder.makeUintConstant(
xenos::kEdramPitchTilesBits * 2),
builder.makeUintConstant(
xenos::kEdramBaseTilesBits + 1)))),
builder.makeUintConstant(xenos::kEdramTileCount - 1));
// Split the host depth source tile index into X and Y tile index
// within the source image.
spv::Id host_depth_source_pitch_tiles = builder.createTriOp(
@ -3837,6 +3853,8 @@ VkShaderModule VulkanRenderTargetCache::GetTransferShader(
type_uint, id_vector_temp);
}
// Combine the tile sample index and the tile index.
// The tile index doesn't need to be wrapped, as the host depth is
// written to the beginning of the buffer, without the base offset.
spv::Id host_depth_offset = builder.createBinOp(
spv::OpIAdd, type_uint,
builder.createBinOp(
@ -5427,28 +5445,33 @@ VkPipeline VulkanRenderTargetCache::GetDumpPipeline(DumpPipelineKey key) {
const_edram_pitch_tiles_bits),
rectangle_tile_index_y),
rectangle_tile_index_x);
// Add the base tile in the dispatch to the dispatch-local tile index.
// Add the base tile in the dispatch to the dispatch-local tile index, not
// wrapping yet so in case of a wraparound, the address relative to the base
// in the image after subtraction of the base won't be negative.
id_vector_temp.clear();
id_vector_temp.push_back(builder.makeIntConstant(kDumpPushConstantOffsets));
spv::Id offsets_constant = builder.createLoad(
builder.createAccessChain(spv::StorageClassPushConstant, push_constants,
id_vector_temp),
spv::NoPrecision);
spv::Id const_edram_base_tiles_bits =
builder.makeUintConstant(xenos::kEdramBaseTilesBits);
spv::Id edram_tile_index = builder.createBinOp(
spv::Id const_edram_base_tiles_bits_plus_1 =
builder.makeUintConstant(xenos::kEdramBaseTilesBits + 1);
spv::Id edram_tile_index_non_wrapped = builder.createBinOp(
spv::OpIAdd, type_uint,
builder.createTriOp(spv::OpBitFieldUExtract, type_uint, offsets_constant,
const_uint_0, const_edram_base_tiles_bits),
const_uint_0, const_edram_base_tiles_bits_plus_1),
rectangle_tile_index);
// Combine the tile sample index and the tile index into the EDRAM sample
// index.
// Combine the tile sample index and the tile index, wrapping the tile
// addressing, into the EDRAM sample index.
spv::Id edram_sample_address = builder.createBinOp(
spv::OpIAdd, type_uint,
builder.createBinOp(spv::OpIMul, type_uint,
builder.makeUintConstant(tile_width * tile_height),
edram_tile_index),
builder.createBinOp(
spv::OpIMul, type_uint,
builder.makeUintConstant(tile_width * tile_height),
builder.createBinOp(
spv::OpBitwiseAnd, type_uint, edram_tile_index_non_wrapped,
builder.makeUintConstant(xenos::kEdramTileCount - 1))),
builder.createBinOp(spv::OpIAdd, type_uint,
builder.createBinOp(spv::OpIMul, type_uint,
const_tile_width, tile_sample_y),
@ -5474,10 +5497,11 @@ VkPipeline VulkanRenderTargetCache::GetDumpPipeline(DumpPipelineKey key) {
// Get the linear tile index within the source texture.
spv::Id source_tile_index = builder.createBinOp(
spv::OpISub, type_uint, edram_tile_index,
builder.createTriOp(spv::OpBitFieldUExtract, type_uint, offsets_constant,
const_edram_base_tiles_bits,
const_edram_base_tiles_bits));
spv::OpISub, type_uint, edram_tile_index_non_wrapped,
builder.createTriOp(
spv::OpBitFieldUExtract, type_uint, offsets_constant,
const_edram_base_tiles_bits_plus_1,
builder.makeUintConstant(xenos::kEdramBaseTilesBits)));
// Split the linear tile index in the source texture into X and Y in tiles.
spv::Id source_pitch_tiles = builder.createTriOp(
spv::OpBitFieldUExtract, type_uint, pitches_constant,

View File

@ -412,13 +412,13 @@ class VulkanRenderTargetCache final : public RenderTargetCache {
// Same as RenderTargetKey::pitch_tiles_at_32bpp.
uint32_t pitch_tiles_at_32bpp : 8; // 8
// [0, 2047].
uint32_t depth_base_tiles : xenos::kEdramBaseTilesBits - 1; // 19
uint32_t color_0_base_tiles : xenos::kEdramBaseTilesBits - 1; // 30
uint32_t depth_base_tiles : xenos::kEdramBaseTilesBits; // 19
uint32_t color_0_base_tiles : xenos::kEdramBaseTilesBits; // 30
uint32_t color_1_base_tiles : xenos::kEdramBaseTilesBits - 1; // 43
uint32_t color_2_base_tiles : xenos::kEdramBaseTilesBits - 1; // 54
uint32_t color_1_base_tiles : xenos::kEdramBaseTilesBits; // 43
uint32_t color_2_base_tiles : xenos::kEdramBaseTilesBits; // 54
uint32_t color_3_base_tiles : xenos::kEdramBaseTilesBits - 1; // 75
uint32_t color_3_base_tiles : xenos::kEdramBaseTilesBits; // 75
// Including all the padding, for a stable hash.
FramebufferKey() { Reset(); }
@ -619,16 +619,13 @@ class VulkanRenderTargetCache final : public RenderTargetCache {
// All in tiles.
uint32_t dest_pitch : xenos::kEdramPitchTilesBits;
uint32_t source_pitch : xenos::kEdramPitchTilesBits;
// Safe to use 12 bits for signed difference - no ownership transfer can
// ever occur between render targets with EDRAM base >= 2048 as this would
// result in 0-length spans. 10 + 10 + 12 is exactly 32, any more bits,
// and more root 32-bit constants will be used.
// Destination base in tiles minus source base in tiles (not vice versa
// because this is a transform of the coordinate system, not addresses
// themselves).
// + 1 bit because this is a signed difference between two EDRAM bases.
// 0 for host_depth_source_is_copy (ignored in this case anyway as
// destination == source anyway).
int32_t source_to_dest : xenos::kEdramBaseTilesBits;
int32_t source_to_dest : xenos::kEdramBaseTilesBits + 1;
};
TransferAddressConstant() : constant(0) {
static_assert_size(*this, sizeof(constant));
@ -746,7 +743,9 @@ class VulkanRenderTargetCache final : public RenderTargetCache {
union DumpOffsets {
uint32_t offsets;
struct {
uint32_t dispatch_first_tile : xenos::kEdramBaseTilesBits;
// May be beyond the EDRAM tile count in case of EDRAM addressing
// wrapping, thus + 1 bit.
uint32_t dispatch_first_tile : xenos::kEdramBaseTilesBits + 1;
uint32_t source_base_tiles : xenos::kEdramBaseTilesBits;
};
DumpOffsets() : offsets(0) { static_assert_size(*this, sizeof(offsets)); }

View File

@ -253,6 +253,23 @@ enum class SurfaceNumberFormat : uint32_t {
// specific depth/stencil values by drawing to a depth buffer's memory through a
// color render target (to reupload a depth/stencil surface previously evicted
// from the EDRAM to the main memory, for instance).
//
// EDRAM addressing is circular - a render target may be backed by a EDRAM range
// that extends beyond 2048 tiles, in which case, what would go to the tile 2048
// will actually be in tile 0, tile 2049 will go to tile 1, and so on. 4D5307F1
// heavily relies on this behavior for its depth buffer. Specifically, it's used
// the following way:
// - First, a depth-only 1120x720 2xMSAA pass is performed with the depth buffer
// in tiles [1008, 2268), or [1008, 2048) and [0, 220).
// - Then, the depth buffer in [1008, 2268) is resolved into a texture, later
// used in screen-space effects.
// - The upper 1120x576 bin is drawn into the color buffer in [0, 1008), using
// the [1008, 2016) portion of the previously populated depth buffer for early
// depth testing (there seems to be no true early Z on the Xenos, only early
// hi-Z, but still it possibly needs to be in sync with the per-sample depth
// buffer), and overwriting the tail of the previously filled depth buffer in
// [0, 220).
// - The lower 1120x144 bin is drawn without the pregenerated depth buffer data.
enum class MsaaSamples : uint32_t {
k1X = 0,
@ -388,9 +405,9 @@ constexpr uint32_t kEdramSizeBytes = kEdramTileCount * kEdramTileHeightSamples *
// RB_SURFACE_INFO::surface_pitch width.
constexpr uint32_t kEdramPitchPixelsBits = 14;
// RB_COLOR_INFO::color_base/RB_DEPTH_INFO::depth_base width (though for the
// Xbox 360 only 11 make sense, but to avoid bounds checks).
constexpr uint32_t kEdramBaseTilesBits = 12;
// The part of RB_COLOR_INFO::color_base and RB_DEPTH_INFO::depth_base width
// usable on the Xenos, which has periodic 11-bit EDRAM tile addressing.
constexpr uint32_t kEdramBaseTilesBits = 11;
constexpr uint32_t GetSurfacePitchTiles(uint32_t pitch_pixels,
MsaaSamples msaa_samples,