Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright © 2010 Intel Corporation
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a
  5.  * copy of this software and associated documentation files (the "Software"),
  6.  * to deal in the Software without restriction, including without limitation
  7.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8.  * and/or sell copies of the Software, and to permit persons to whom the
  9.  * Software is furnished to do so, subject to the following conditions:
  10.  *
  11.  * The above copyright notice and this permission notice (including the next
  12.  * paragraph) shall be included in all copies or substantial portions of the
  13.  * Software.
  14.  *
  15.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  18.  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  20.  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  21.  * IN THE SOFTWARE.
  22.  *
  23.  */
  24.  
  25. /* header */
  26. define(`data_port_msg_2_0',     `g112')
  27. define(`data_port_msg_2_1',     `g113')
  28. define(`data_port_msg_2_ind',   `112')
  29.  
  30. mov (8) data_port_msg_2_0<1>UD g0<8,8,1>UD {align1 mask_disable};
  31. mov (8) data_port_msg_2_1<1>UD g1<8,8,1>UD {align1 mask_disable};
  32.  
  33. /*
  34.  * Prepare data in g114-g115 for Red channel, g116-g117 for Green channel,
  35.  * g118-g119 for Blue and g120-g121 for Alpha channel
  36.  */
  37. define(`slot_r_00',     `g114')
  38. define(`slot_r_01',     `g115')
  39. define(`slot_g_00',     `g116')
  40. define(`slot_g_01',     `g117')
  41. define(`slot_b_00',     `g118')
  42. define(`slot_b_01',     `g119')
  43. define(`slot_a_00',     `g120')
  44. define(`slot_a_01',     `g121')
  45.  
  46. mov (8) slot_r_00<1>F     src_sample_r_01<8,8,1>F { align1 mask_disable };
  47. mov (8) slot_r_01<1>F     src_sample_r_23<8,8,1>F { align1 mask_disable };
  48.  
  49. mov (8) slot_g_00<1>F     src_sample_g_01<8,8,1>F { align1 mask_disable };
  50. mov (8) slot_g_01<1>F     src_sample_g_23<8,8,1>F { align1 mask_disable };
  51.  
  52. mov (8) slot_b_00<1>F     src_sample_b_01<8,8,1>F { align1 mask_disable };
  53. mov (8) slot_b_01<1>F     src_sample_b_23<8,8,1>F { align1 mask_disable };
  54.  
  55. mov (8) slot_a_00<1>F     src_sample_a_01<8,8,1>F { align1 mask_disable };
  56. mov (8) slot_a_01<1>F     src_sample_a_23<8,8,1>F { align1 mask_disable };
  57.  
  58. send (16)
  59.         data_port_msg_2_ind
  60.         null<1>UW
  61.         null
  62.         write (
  63.                0,   /* binding table index */
  64.                16,  /* last render target(1) + slots 15:0(0) + msg type simd16 single source(000) */
  65.                12,  /* render target write */
  66.                0,   /* ignore for Ivybridge */
  67.                1    /* header present */
  68.         )
  69.         mlen 10
  70.         rlen 0
  71.         { align1 EOT };
  72.  
  73. nop;
  74. nop;
  75. nop;
  76. nop;
  77. nop;
  78. nop;
  79. nop;
  80. nop;
  81.