vl: replace DIV-ADD with MAD using inverse size

Optimize the shader a bit by emitting MAD with the inverse size values
instead of DIV+ADD.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Gert Wollny 2019-06-12 16:04:33 +02:00
parent 89381191a9
commit 187c308b96
1 changed files with 5 additions and 4 deletions

View File

@ -201,10 +201,11 @@ create_frag_shader(struct vl_bicubic_filter *filter, unsigned video_width,
ureg_FLR(shader, ureg_writemask(t_array[22], TGSI_WRITEMASK_XY),
ureg_src(t_array[22]));
ureg_DIV(shader, ureg_writemask(t_array[22], TGSI_WRITEMASK_XY),
ureg_src(t_array[22]), ureg_imm2f(shader, video_width, video_height));
ureg_ADD(shader, ureg_writemask(t_array[22], TGSI_WRITEMASK_XY),
ureg_src(t_array[22]), half_pixel);
ureg_MAD(shader, ureg_writemask(t_array[22], TGSI_WRITEMASK_XY),
ureg_src(t_array[22]),
ureg_imm2f(shader, 1.0f / video_width, 1.0f / video_height),
half_pixel);
/*
* t_array[0..*] = vtex + offset[0..*]