[GPU] Up to 7x7 resolution scaling
This commit is contained in:
@@ -43,16 +43,24 @@ xesl_entry_inputs_end_code_begin_compute
|
||||
xesl_function_call_uintVectorBuffer(xe_resolve_edram)
|
||||
xesl_function_call_next_after_uintVectorBuffer
|
||||
resolve_info,
|
||||
XeResolveColorCopySourcePixelAddressIntsYDuplicating(resolve_info,
|
||||
pixel_index),
|
||||
XeResolveColorCopySourcePixelAddressIntsYHalfPixelOffsetFilling(
|
||||
resolve_info, pixel_index),
|
||||
pixel_0, pixel_1, pixel_2, pixel_3);
|
||||
if (resolve_info.duplicate_second_host_pixel.x && pixel_index.x == 0u) {
|
||||
pixel_0 = pixel_1;
|
||||
xesl_uint4 packed = XePack32bpp4Pixels(pixel_0, pixel_1, pixel_2, pixel_3,
|
||||
resolve_info.dest_format);
|
||||
xesl_dont_flatten
|
||||
if (pixel_index.x == 0u &&
|
||||
resolve_info.half_pixel_offset_fill_source.x != 0u) {
|
||||
if (resolve_info.half_pixel_offset_fill_source.x >= 2u) {
|
||||
if (resolve_info.half_pixel_offset_fill_source.x >= 3u) {
|
||||
packed.z = packed.w;
|
||||
}
|
||||
packed.y = packed.z;
|
||||
}
|
||||
packed.x = packed.y;
|
||||
}
|
||||
xesl_typedStorageBufferStore(
|
||||
xe_resolve_dest,
|
||||
XeResolveDestPixelAddress(resolve_info, pixel_index, 2u) >> 4u,
|
||||
XeEndianSwap32(XePack32bpp4Pixels(pixel_0, pixel_1, pixel_2, pixel_3,
|
||||
resolve_info.dest_format),
|
||||
resolve_info.dest_endian_128));
|
||||
XeEndianSwap32(packed, resolve_info.dest_endian_128));
|
||||
xesl_entry_code_end_compute
|
||||
|
||||
Reference in New Issue
Block a user