xf86-video-intel: src/render_program/exa_wm_src_projective.g7a src/render_program/exa_wm_src_projective.g7b

Chris Wilson ickle at kemper.freedesktop.org
Mon Feb 18 05:49:24 PST 2013


 src/render_program/exa_wm_src_projective.g7a |    4 ++--
 src/render_program/exa_wm_src_projective.g7b |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit b3ba758a0186c9abc6c0583f52775ea714165134
Author: Damien Lespiau <damien.lespiau at intel.com>
Date:   Thu Feb 14 14:20:19 2013 +0000

    uxa/gen7: Don't use a message register to store vl
    
    Turns out the "new" assembler that uses mesa's opcode emission hits the
    path that automatically transforms MRF registers into GRF ones in the
    exa_wm_src_projective shader.
    
    The diff with the new assembler is:
    
    $ intel-gen4disasm -g7 -
    -   { 0x00600041, 0x208077be, 0x008d03c0, 0x008d0180 },
    +   { 0x00600041, 0x2e8077bd, 0x008d03c0, 0x008d0180 },
    mul(8)      m4<1>F          g30<8,8,1>F     g12<8,8,1>F     { align1 };
    mul(8)      g116<1>F        g30<8,8,1>F     g12<8,8,1>F     { align1 };
    
    Of course, message registers are no more in gen7, so the shader is
    trying to do something shaddy (ahem!).
    
    Instead of using m4, let's make exa_wm_src_projective use g68 for v (aka
    vl) which makes sense since:
    
    1/ vh is g69
    2/ exa_wm_src_affine uses g68 for vl already
    
    This commit changes the generated assembly, here's the decoded diff:
    
    $ intel-gen4disasm -g7 -
    -   { 0x00600041, 0x208077be, 0x008d03c0, 0x008d0180 },
    +   { 0x00600041, 0x288077bd, 0x008d03c0, 0x008d0180 },
    mul(8)      m4<1>F          g30<8,8,1>F     g12<8,8,1>F     { align1 };
    mul(8)      g68<1>F         g30<8,8,1>F     g12<8,8,1>F     { align1 };
    
    Cc: Kenneth Graunke <kenneth at whitecape.org>
    Reported-by: Xiang, Haihao <haihao.xiang at intel.com>
    Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

diff --git a/src/render_program/exa_wm_src_projective.g7a b/src/render_program/exa_wm_src_projective.g7a
index 9fd495c..465e99d 100644
--- a/src/render_program/exa_wm_src_projective.g7a
+++ b/src/render_program/exa_wm_src_projective.g7a
@@ -30,8 +30,8 @@ include(`exa_wm.g4i')
 define(`u',     `g66')
 define(`ul',    `g66')
 define(`uh',    `g67')
-define(`v',     `src_v')
-define(`vl',    `src_v')
+define(`v',     `g68')
+define(`vl',    `g68')
 define(`vh',    `g69')
 define(`w',     `src_w')
 define(`wl',    `src_w_0')
diff --git a/src/render_program/exa_wm_src_projective.g7b b/src/render_program/exa_wm_src_projective.g7b
index 73727ff..cadcaa3 100644
--- a/src/render_program/exa_wm_src_projective.g7b
+++ b/src/render_program/exa_wm_src_projective.g7b
@@ -8,5 +8,5 @@
    { 0x00600041, 0x286077bd, 0x008d03e0, 0x008d01a0 },
    { 0x0060005a, 0x23c077bd, 0x000000d0, 0x008d0040 },
    { 0x0060005a, 0x23e077bd, 0x000000d0, 0x008d0080 },
-   { 0x00600041, 0x208077be, 0x008d03c0, 0x008d0180 },
+   { 0x00600041, 0x288077bd, 0x008d03c0, 0x008d0180 },
    { 0x00600041, 0x28a077bd, 0x008d03e0, 0x008d01a0 },


More information about the xorg-commit mailing list