[Mesa-dev] [PATCH v2] i965/skl: Fix the order of the arguments for the LD sampler message
Anuj Phogat
anuj.phogat at gmail.com
Thu Apr 2 11:30:59 PDT 2015
On Mon, Mar 9, 2015 at 10:17 AM, Neil Roberts <neil at linux.intel.com> wrote:
> In Skylake the order of the arguments for sample messages with the LD
> type are u, v, lod, r whereas previously they were u, lod, v, r.
>
> This fixes 144 Piglit tests including ones that directly use
> texelFetch and also some using the meta stencil blit path which
> appears to use texelFetch in its shader.
>
> v2: Fix sampling 1D textures
> ---
>
> I realised that v1 of the patch would end up putting the lod in the
> wrong argument for 1D textures so here is a v2. This time I have run
> it through a full Piglit run and it doesn't cause any regressions.
>
> src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> index 6b48f70..287ee47 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> @@ -1742,15 +1742,26 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode op, fs_reg dst,
> length++;
> break;
> case ir_txf:
> - /* Unfortunately, the parameters for LD are intermixed: u, lod, v, r. */
> + /* Unfortunately, the parameters for LD are intermixed: u, lod, v, r.
> + * On Gen9 they are u, v, lod, r
> + */
> +
> emit(MOV(retype(sources[length], BRW_REGISTER_TYPE_D), coordinate));
> coordinate = offset(coordinate, 1);
> length++;
>
> + if (brw->gen >= 9) {
> + if (coord_components >= 2) {
> + emit(MOV(retype(sources[length], BRW_REGISTER_TYPE_D), coordinate));
> + coordinate = offset(coordinate, 1);
> + }
> + length++;
> + }
> +
> emit(MOV(retype(sources[length], BRW_REGISTER_TYPE_D), lod));
> length++;
>
> - for (int i = 1; i < coord_components; i++) {
> + for (int i = brw->gen >= 9 ? 2 : 1; i < coord_components; i++) {
> emit(MOV(retype(sources[length], BRW_REGISTER_TYPE_D), coordinate));
> coordinate = offset(coordinate, 1);
> length++;
> --
> 1.9.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
More information about the mesa-dev
mailing list