1. 12 Jul, 2019 2 commits
    • Eric Anholt's avatar
      freedreno: Add support for drm-shim. · aadecf7d
      Eric Anholt authored
      I'm using this for shader-db analysis on x86_64 systems.
      aadecf7d
    • Eric Anholt's avatar
      v3d: Introduce a DRM shim for calling out to the simulator. · 84ea5cf5
      Eric Anholt authored
      The goal is to enable testing of parts of drivers without depending on any
      particular kernel version or hardware being present.
      
      Simply set LD_PRELOAD=$PREFIX/lib/libv3d_drm_shim.so in your environment,
      and we'll fake a /dev/dri/renderD128 (or whatever the next available node
      is) using v3dv3.  That node can then be used with the surfaceless or gbm
      EGL platforms.
      84ea5cf5
  2. 11 Jul, 2019 38 commits
    • Kenneth Graunke's avatar
      iris: Disable SIMD32 when using a 16x MSAA framebuffer. · 5445c176
      Kenneth Graunke authored
      We weren't doing this documented workaround because it's sorta painful.
      5445c176
    • Ian Romanick's avatar
      nir/algebraic: Recognize open-coded flrp(a, b, a) · ef7b4fdf
      Ian Romanick authored
      No shader-db changes Ice Lake, Iron Lake, or GM45 as these platforms
      lack a LRP instruction.
      
      v2: Remove flrp@64 cases.  Since Gen11 removes flrp@32, it seems
      unlikely that we'll ever have a flrp@64.  Should that occur, the cases
      can be added back.
      
      All Gen6-Gen9 platforms had similar results. (Skylake shown)
      total instructions in shared programs: 15041996 -> 15041184 (<.01%)
      instructions in affected programs: 71776 -> 70964 (-1.13%)
      helped: 312
      HURT: 0
      helped stats (abs) min: 2 max: 3 x̄: 2.60 x̃: 3
      helped stats (rel) min: 0.36% max: 4.55% x̄: 1.75% x̃: 1.28%
      95% mean confidence interval for instructions value: -2.66 -2.55
      95% mean confidence interval for instructions %-change: -1.89% -1.61%
      Instructions are helped.
      
      total cycles in shared programs: 354303333 -> 354301807 (<.01%)
      cycles in affected programs: 433742 -> 432216 (-0.35%)
      helped: 206
      HURT: 78
      helped stats (abs) min: 2 max: 244 x̄: 21.02 x̃: 8
      helped stats (rel) min: 0.06% max: 19.59% x̄: 1.72% x̃: 0.82%
      HURT stats (abs)   min: 1 max: 220 x̄: 35.95 x̃: 10
      HURT stats (rel)   min: 0.07% max: 30.48% x̄: 2.53% x̃: 0.56%
      95% mean confidence interval for cycles value: -10.68 -0.06
      95% mean confidence interval for cycles %-change: -0.99% -0.12%
      Cycles are helped.
      Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
      ef7b4fdf
    • Ian Romanick's avatar
      nir/algebraic: Rearrange 1-((1-a) * (1-b)) into flrp-friendly form · 0c2b3a7f
      Ian Romanick authored
      No shader-db changes Ice Lake, Iron Lake, or GM45 as these platforms
      lack a LRP instruction.
      
      v2: Convert the pattern directly to flrp.  There were negligible
      improvements on Gen4 and Gen5, and Gen11 was actually hurt.  I believe
      the problem is this optimization conflicts with the (1-x)*y =>
      ffma(-x, y, y) optimization on Gen11.
      
      Skylake
      total instructions in shared programs: 15046487 -> 15041996 (-0.03%)
      instructions in affected programs: 194681 -> 190190 (-2.31%)
      helped: 880
      HURT: 20
      helped stats (abs) min: 1 max: 19 x̄: 5.13 x̃: 4
      helped stats (rel) min: 0.19% max: 36.36% x̄: 4.85% x̃: 3.33%
      HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
      HURT stats (rel)   min: 0.11% max: 1.06% x̄: 0.28% x̃: 0.17%
      95% mean confidence interval for instructions value: -5.25 -4.73
      95% mean confidence interval for instructions %-change: -5.11% -4.36%
      Instructions are helped.
      
      total cycles in shared programs: 354340839 -> 354303333 (-0.01%)
      cycles in affected programs: 1753622 -> 1716116 (-2.14%)
      helped: 786
      HURT: 182
      helped stats (abs) min: 1 max: 1842 x̄: 56.52 x̃: 22
      helped stats (rel) min: 0.03% max: 43.17% x̄: 3.90% x̃: 2.84%
      HURT stats (abs)   min: 1 max: 440 x̄: 37.99 x̃: 9
      HURT stats (rel)   min: 0.03% max: 29.37% x̄: 1.96% x̃: 0.32%
      95% mean confidence interval for cycles value: -45.90 -31.59
      95% mean confidence interval for cycles %-change: -3.09% -2.50%
      Cycles are helped.
      
      All Gen6-Gen8 platforms had similar results. (Broadwell shown)
      total instructions in shared programs: 15055907 -> 15051466 (-0.03%)
      instructions in affected programs: 196370 -> 191929 (-2.26%)
      helped: 871
      HURT: 26
      helped stats (abs) min: 1 max: 19 x̄: 5.13 x̃: 4
      helped stats (rel) min: 0.19% max: 36.36% x̄: 4.76% x̃: 3.27%
      HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
      HURT stats (rel)   min: 0.11% max: 1.06% x̄: 0.24% x̃: 0.12%
      95% mean confidence interval for instructions value: -5.21 -4.69
      95% mean confidence interval for instructions %-change: -4.99% -4.24%
      Instructions are helped.
      
      total cycles in shared programs: 387729170 -> 387699745 (<.01%)
      cycles in affected programs: 1816409 -> 1786984 (-1.62%)
      helped: 788
      HURT: 172
      helped stats (abs) min: 1 max: 662 x̄: 47.29 x̃: 22
      helped stats (rel) min: 0.03% max: 31.26% x̄: 3.55% x̃: 2.76%
      HURT stats (abs)   min: 1 max: 404 x̄: 45.59 x̃: 14
      HURT stats (rel)   min: 0.03% max: 22.92% x̄: 1.53% x̃: 0.43%
      95% mean confidence interval for cycles value: -35.69 -25.61
      95% mean confidence interval for cycles %-change: -2.88% -2.40%
      Cycles are helped.
      
      total fills in shared programs: 34712 -> 34710 (<.01%)
      fills in affected programs: 7 -> 5 (-28.57%)
      helped: 1
      HURT: 0
      
      LOST:   0
      GAINED: 2
      Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
      0c2b3a7f
    • Ian Romanick's avatar
      nir/algebraic: Reassociate fadd into fmul in DPH-like pattern · 09705747
      Ian Romanick authored
      Moving the add to the other end of the sequence allows it to be fused
      into an FMA.
      
      Ice Lake
      total instructions in shared programs: 17173074 -> 16933147 (-1.40%)
      instructions in affected programs: 7938745 -> 7698818 (-3.02%)
      helped: 35583
      HURT: 90
      helped stats (abs) min: 1 max: 716 x̄: 6.75 x̃: 6
      helped stats (rel) min: 0.10% max: 53.04% x̄: 5.29% x̃: 3.45%
      HURT stats (abs)   min: 1 max: 41 x̄: 2.46 x̃: 1
      HURT stats (rel)   min: 0.32% max: 8.33% x̄: 1.41% x̃: 0.77%
      95% mean confidence interval for instructions value: -6.80 -6.65
      95% mean confidence interval for instructions %-change: -5.32% -5.22%
      Instructions are helped.
      
      total cycles in shared programs: 360881386 -> 359533568 (-0.37%)
      cycles in affected programs: 189489144 -> 188141326 (-0.71%)
      helped: 27250
      HURT: 6707
      helped stats (abs) min: 1 max: 21997 x̄: 62.15 x̃: 16
      helped stats (rel) min: <.01% max: 70.69% x̄: 4.04% x̃: 2.35%
      HURT stats (abs)   min: 1 max: 3507 x̄: 51.56 x̃: 14
      HURT stats (rel)   min: <.01% max: 77.26% x̄: 2.72% x̃: 1.27%
      95% mean confidence interval for cycles value: -44.70 -34.68
      95% mean confidence interval for cycles %-change: -2.75% -2.65%
      Cycles are helped.
      
      total spills in shared programs: 8943 -> 8829 (-1.27%)
      spills in affected programs: 625 -> 511 (-18.24%)
      helped: 6
      HURT: 3
      
      total fills in shared programs: 21815 -> 21719 (-0.44%)
      fills in affected programs: 1653 -> 1557 (-5.81%)
      helped: 7
      HURT: 10
      
      LOST:   11
      GAINED: 3
      
      Skylake and Broadwell had similar results. (Skylake shown)
      total instructions in shared programs: 15271996 -> 15040882 (-1.51%)
      instructions in affected programs: 7193699 -> 6962585 (-3.21%)
      helped: 33985
      HURT: 30
      helped stats (abs) min: 1 max: 260 x̄: 6.80 x̃: 6
      helped stats (rel) min: 0.10% max: 30.00% x̄: 5.54% x̃: 3.85%
      HURT stats (abs)   min: 1 max: 41 x̄: 4.00 x̃: 3
      HURT stats (rel)   min: 0.20% max: 2.16% x̄: 1.46% x̃: 1.72%
      95% mean confidence interval for instructions value: -6.87 -6.72
      95% mean confidence interval for instructions %-change: -5.59% -5.48%
      Instructions are helped.
      
      total cycles in shared programs: 355520785 -> 354253799 (-0.36%)
      cycles in affected programs: 185869148 -> 184602162 (-0.68%)
      helped: 25824
      HURT: 6287
      helped stats (abs) min: 1 max: 21997 x̄: 61.66 x̃: 16
      helped stats (rel) min: <.01% max: 42.05% x̄: 4.18% x̃: 2.41%
      HURT stats (abs)   min: 1 max: 3327 x̄: 51.76 x̃: 14
      HURT stats (rel)   min: <.01% max: 101.62% x̄: 2.80% x̃: 1.28%
      95% mean confidence interval for cycles value: -44.70 -34.21
      95% mean confidence interval for cycles %-change: -2.87% -2.76%
      Cycles are helped.
      
      total spills in shared programs: 8835 -> 8818 (-0.19%)
      spills in affected programs: 613 -> 596 (-2.77%)
      helped: 5
      HURT: 2
      
      total fills in shared programs: 21738 -> 21744 (0.03%)
      fills in affected programs: 1348 -> 1354 (0.45%)
      helped: 5
      HURT: 11
      
      LOST:   0
      GAINED: 12
      
      Haswell
      total instructions in shared programs: 13447102 -> 13381508 (-0.49%)
      instructions in affected programs: 3770735 -> 3705141 (-1.74%)
      helped: 11999
      HURT: 29
      helped stats (abs) min: 1 max: 409 x̄: 5.60 x̃: 3
      helped stats (rel) min: 0.10% max: 20.00% x̄: 2.38% x̃: 1.87%
      HURT stats (abs)   min: 3 max: 750 x̄: 54.90 x̃: 3
      HURT stats (rel)   min: 0.12% max: 125.30% x̄: 9.96% x̃: 1.82%
      95% mean confidence interval for instructions value: -5.71 -5.19
      95% mean confidence interval for instructions %-change: -2.39% -2.30%
      Instructions are helped.
      
      total cycles in shared programs: 376342236 -> 375690458 (-0.17%)
      cycles in affected programs: 155699021 -> 155047243 (-0.42%)
      helped: 8397
      HURT: 2876
      helped stats (abs) min: 1 max: 20248 x̄: 109.87 x̃: 18
      helped stats (rel) min: <.01% max: 40.71% x̄: 2.23% x̃: 1.49%
      HURT stats (abs)   min: 1 max: 15414 x̄: 94.15 x̃: 22
      HURT stats (rel)   min: <.01% max: 432.49% x̄: 3.15% x̃: 1.41%
      95% mean confidence interval for cycles value: -67.64 -48.00
      95% mean confidence interval for cycles %-change: -0.99% -0.74%
      Cycles are helped.
      
      total spills in shared programs: 23134 -> 23184 (0.22%)
      spills in affected programs: 1675 -> 1725 (2.99%)
      helped: 13
      HURT: 11
      
      total fills in shared programs: 34550 -> 34686 (0.39%)
      fills in affected programs: 1421 -> 1557 (9.57%)
      helped: 13
      HURT: 11
      
      LOST:   0
      GAINED: 11
      
      Ivy Bridge
      total instructions in shared programs: 12019642 -> 11987285 (-0.27%)
      instructions in affected programs: 1532236 -> 1499879 (-2.11%)
      helped: 5522
      HURT: 110
      helped stats (abs) min: 1 max: 312 x̄: 6.22 x̃: 3
      helped stats (rel) min: 0.16% max: 20.00% x̄: 2.46% x̃: 1.88%
      HURT stats (abs)   min: 1 max: 750 x̄: 18.07 x̃: 3
      HURT stats (rel)   min: 0.09% max: 125.30% x̄: 3.42% x̃: 1.15%
      95% mean confidence interval for instructions value: -6.25 -5.24
      95% mean confidence interval for instructions %-change: -2.43% -2.26%
      Instructions are helped.
      
      total cycles in shared programs: 180214667 -> 179761900 (-0.25%)
      cycles in affected programs: 31448723 -> 30995956 (-1.44%)
      helped: 7191
      HURT: 2838
      helped stats (abs) min: 1 max: 17680 x̄: 88.47 x̃: 17
      helped stats (rel) min: <.01% max: 50.45% x̄: 2.16% x̃: 1.40%
      HURT stats (abs)   min: 1 max: 15540 x̄: 64.63 x̃: 24
      HURT stats (rel)   min: 0.02% max: 435.17% x̄: 3.10% x̃: 1.51%
      95% mean confidence interval for cycles value: -53.34 -36.95
      95% mean confidence interval for cycles %-change: -0.81% -0.53%
      Cycles are helped.
      
      total spills in shared programs: 3599 -> 3642 (1.19%)
      spills in affected programs: 1180 -> 1223 (3.64%)
      helped: 12
      HURT: 2
      
      total fills in shared programs: 4031 -> 4162 (3.25%)
      fills in affected programs: 876 -> 1007 (14.95%)
      helped: 12
      HURT: 2
      
      LOST:   6
      GAINED: 5
      
      Sandy Bridge
      total instructions in shared programs: 10850686 -> 10822890 (-0.26%)
      instructions in affected programs: 1247986 -> 1220190 (-2.23%)
      helped: 4699
      HURT: 102
      helped stats (abs) min: 1 max: 104 x̄: 6.02 x̃: 3
      helped stats (rel) min: 0.15% max: 17.65% x̄: 2.44% x̃: 1.88%
      HURT stats (abs)   min: 1 max: 16 x̄: 4.70 x̃: 3
      HURT stats (rel)   min: 0.09% max: 3.85% x̄: 1.11% x̃: 1.10%
      95% mean confidence interval for instructions value: -6.10 -5.47
      95% mean confidence interval for instructions %-change: -2.42% -2.30%
      Instructions are helped.
      
      total cycles in shared programs: 154044149 -> 153920095 (-0.08%)
      cycles in affected programs: 26037392 -> 25913338 (-0.48%)
      helped: 5974
      HURT: 2521
      helped stats (abs) min: 1 max: 1802 x̄: 35.42 x̃: 16
      helped stats (rel) min: <.01% max: 35.80% x̄: 1.43% x̃: 0.84%
      HURT stats (abs)   min: 1 max: 862 x̄: 34.73 x̃: 20
      HURT stats (rel)   min: 0.01% max: 36.33% x̄: 1.67% x̃: 0.85%
      95% mean confidence interval for cycles value: -16.31 -12.90
      95% mean confidence interval for cycles %-change: -0.56% -0.45%
      Cycles are helped.
      
      total spills in shared programs: 2876 -> 2957 (2.82%)
      spills in affected programs: 592 -> 673 (13.68%)
      helped: 6
      HURT: 35
      
      total fills in shared programs: 3157 -> 3134 (-0.73%)
      fills in affected programs: 402 -> 379 (-5.72%)
      helped: 6
      HURT: 0
      
      LOST:   5
      GAINED: 11
      Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
      09705747
    • Ian Romanick's avatar
      nir/algebraic: Recognize open-coded flrp(-1, 1, a) and flrp(1, -1, a) · ff9f526d
      Ian Romanick authored
      v2: Remove flrp@64 cases.  Since Gen11 removes flrp@32, it seems
      unlikely that we'll ever have a flrp@64.  Should that occur, the cases
      can be added back.
      
      v3: Add a couple more patterns that just move the negation around.
      
      No shader-db changes Ice Lake, Iron Lake, or GM45 as these platforms
      lack a LRP instruction.
      
      Skylake
      total instructions in shared programs: 15279687 -> 15256058 (-0.15%)
      instructions in affected programs: 4344440 -> 4320811 (-0.54%)
      helped: 23455
      HURT: 18
      helped stats (abs) min: 1 max: 21 x̄: 1.01 x̃: 1
      helped stats (rel) min: 0.02% max: 13.33% x̄: 0.86% x̃: 0.65%
      HURT stats (abs)   min: 1 max: 2 x̄: 1.06 x̃: 1
      HURT stats (rel)   min: 0.13% max: 1.16% x̄: 0.43% x̃: 0.34%
      95% mean confidence interval for instructions value: -1.01 -1.00
      95% mean confidence interval for instructions %-change: -0.87% -0.85%
      Instructions are helped.
      
      total cycles in shared programs: 355593755 -> 355339981 (-0.07%)
      cycles in affected programs: 162089552 -> 161835778 (-0.16%)
      helped: 20467
      HURT: 7158
      helped stats (abs) min: 1 max: 2074 x̄: 29.00 x̃: 6
      helped stats (rel) min: <.01% max: 35.71% x̄: 1.71% x̃: 0.58%
      HURT stats (abs)   min: 1 max: 4814 x̄: 47.46 x̃: 11
      HURT stats (rel)   min: <.01% max: 125.43% x̄: 2.88% x̃: 0.98%
      95% mean confidence interval for cycles value: -10.39 -7.98
      95% mean confidence interval for cycles %-change: -0.57% -0.47%
      Cycles are helped.
      
      total spills in shared programs: 8843 -> 8835 (-0.09%)
      spills in affected programs: 190 -> 182 (-4.21%)
      helped: 2
      HURT: 0
      
      total fills in shared programs: 21738 -> 21738 (0.00%)
      fills in affected programs: 372 -> 372 (0.00%)
      helped: 1
      HURT: 1
      
      LOST:   12
      GAINED: 22
      
      Broadwell
      total instructions in shared programs: 15290523 -> 15266818 (-0.16%)
      instructions in affected programs: 4314738 -> 4291033 (-0.55%)
      helped: 23391
      HURT: 11
      helped stats (abs) min: 1 max: 119 x̄: 1.02 x̃: 1
      helped stats (rel) min: 0.02% max: 13.33% x̄: 0.86% x̃: 0.65%
      HURT stats (abs)   min: 1 max: 189 x̄: 18.09 x̃: 1
      HURT stats (rel)   min: 0.11% max: 5.39% x̄: 0.98% x̃: 0.50%
      95% mean confidence interval for instructions value: -1.04 -0.99
      95% mean confidence interval for instructions %-change: -0.87% -0.85%
      Instructions are helped.
      
      total cycles in shared programs: 388911660 -> 388830827 (-0.02%)
      cycles in affected programs: 172903324 -> 172822491 (-0.05%)
      helped: 15601
      HURT: 13269
      helped stats (abs) min: 1 max: 1986 x̄: 29.18 x̃: 6
      helped stats (rel) min: <.01% max: 36.60% x̄: 1.74% x̃: 0.55%
      HURT stats (abs)   min: 1 max: 14904 x̄: 28.21 x̃: 6
      HURT stats (rel)   min: <.01% max: 102.58% x̄: 1.77% x̃: 0.60%
      95% mean confidence interval for cycles value: -4.20 -1.40
      95% mean confidence interval for cycles %-change: -0.17% -0.08%
      Cycles are helped.
      
      total spills in shared programs: 23110 -> 23069 (-0.18%)
      spills in affected programs: 656 -> 615 (-6.25%)
      helped: 3
      HURT: 1
      
      total fills in shared programs: 34399 -> 34398 (<.01%)
      fills in affected programs: 905 -> 904 (-0.11%)
      helped: 3
      HURT: 1
      
      LOST:   6
      GAINED: 23
      
      Haswell
      total instructions in shared programs: 13465303 -> 13441142 (-0.18%)
      instructions in affected programs: 3726999 -> 3702838 (-0.65%)
      helped: 22139
      HURT: 347
      helped stats (abs) min: 1 max: 43 x̄: 1.11 x̃: 1
      helped stats (rel) min: 0.03% max: 10.00% x̄: 1.01% x̃: 0.75%
      HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
      HURT stats (rel)   min: 0.35% max: 11.11% x̄: 1.48% x̃: 1.12%
      95% mean confidence interval for instructions value: -1.08 -1.07
      95% mean confidence interval for instructions %-change: -0.99% -0.96%
      Instructions are helped.
      
      total cycles in shared programs: 376271308 -> 376273090 (<.01%)
      cycles in affected programs: 167496811 -> 167498593 (<.01%)
      helped: 13206
      HURT: 13281
      helped stats (abs) min: 1 max: 3864 x̄: 35.39 x̃: 8
      helped stats (rel) min: <.01% max: 53.10% x̄: 2.31% x̃: 0.80%
      HURT stats (abs)   min: 1 max: 3828 x̄: 35.32 x̃: 8
      HURT stats (rel)   min: <.01% max: 117.85% x̄: 2.88% x̃: 0.61%
      95% mean confidence interval for cycles value: -1.33 1.47
      95% mean confidence interval for cycles %-change: 0.22% 0.36%
      Inconclusive result (value mean confidence interval includes 0).
      
      total spills in shared programs: 23158 -> 23134 (-0.10%)
      spills in affected programs: 24 -> 0
      helped: 3
      HURT: 0
      
      total fills in shared programs: 34580 -> 34550 (-0.09%)
      fills in affected programs: 30 -> 0
      helped: 3
      HURT: 0
      
      LOST:   23
      GAINED: 13
      
      Ivy Bridge
      total instructions in shared programs: 12034154 -> 12014301 (-0.16%)
      instructions in affected programs: 3636209 -> 3616356 (-0.55%)
      helped: 18771
      HURT: 459
      helped stats (abs) min: 1 max: 43 x̄: 1.08 x̃: 1
      helped stats (rel) min: 0.03% max: 10.00% x̄: 0.91% x̃: 0.68%
      HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
      HURT stats (rel)   min: 0.34% max: 8.33% x̄: 1.43% x̃: 1.11%
      95% mean confidence interval for instructions value: -1.04 -1.02
      95% mean confidence interval for instructions %-change: -0.86% -0.84%
      Instructions are helped.
      
      total cycles in shared programs: 180186960 -> 180175147 (<.01%)
      cycles in affected programs: 44652745 -> 44640932 (-0.03%)
      helped: 12979
      HURT: 11033
      helped stats (abs) min: 1 max: 5836 x̄: 32.88 x̃: 6
      helped stats (rel) min: <.01% max: 53.10% x̄: 2.19% x̃: 0.74%
      HURT stats (abs)   min: 1 max: 4811 x̄: 37.61 x̃: 9
      HURT stats (rel)   min: <.01% max: 115.18% x̄: 2.99% x̃: 0.69%
      95% mean confidence interval for cycles value: -2.29 1.31
      95% mean confidence interval for cycles %-change: 0.11% 0.26%
      Inconclusive result (value mean confidence interval includes 0).
      
      total spills in shared programs: 3623 -> 3599 (-0.66%)
      spills in affected programs: 24 -> 0
      helped: 3
      HURT: 0
      
      total fills in shared programs: 4061 -> 4031 (-0.74%)
      fills in affected programs: 30 -> 0
      helped: 3
      HURT: 0
      
      LOST:   17
      GAINED: 18
      
      Sandy Bridge
      total instructions in shared programs: 10853968 -> 10834932 (-0.18%)
      instructions in affected programs: 3769957 -> 3750921 (-0.50%)
      helped: 17944
      HURT: 204
      helped stats (abs) min: 1 max: 3 x̄: 1.07 x̃: 1
      helped stats (rel) min: 0.02% max: 10.00% x̄: 0.83% x̃: 0.60%
      HURT stats (abs)   min: 1 max: 2 x̄: 1.01 x̃: 1
      HURT stats (rel)   min: 0.31% max: 9.09% x̄: 1.83% x̃: 0.93%
      95% mean confidence interval for instructions value: -1.05 -1.04
      95% mean confidence interval for instructions %-change: -0.81% -0.78%
      Instructions are helped.
      
      total cycles in shared programs: 153894864 -> 153885988 (<.01%)
      cycles in affected programs: 50643925 -> 50635049 (-0.02%)
      helped: 9361
      HURT: 10534
      helped stats (abs) min: 1 max: 1966 x̄: 19.42 x̃: 4
      helped stats (rel) min: <.01% max: 34.97% x̄: 0.90% x̃: 0.22%
      HURT stats (abs)   min: 1 max: 1371 x̄: 16.42 x̃: 5
      HURT stats (rel)   min: <.01% max: 55.10% x̄: 0.81% x̃: 0.27%
      95% mean confidence interval for cycles value: -1.27 0.38
      95% mean confidence interval for cycles %-change: -0.03% 0.04%
      Inconclusive result (value mean confidence interval includes 0).
      
      LOST:   6
      GAINED: 24
      Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
      ff9f526d
    • Ian Romanick's avatar
      nir: intel/vec4: Add flag to disable some algebraic optimizations · 1259f6d8
      Ian Romanick authored
      A couple patches later in this series use the flag to avoid a few
      thousand shader-db regresions on all vec4 platforms.
      
      I'm not particularly enamored with the name of this flag.  However, I
      suspect the Intel vec4 backend is the only backend that will benefit
      from it.  Specifically, the cases where this helps are all cases where
      we want to prevent nir_opt_algebraic from rearranging instructions to
      create 3-source instructions, such as ffma and flrp, with additional
      immediate value or uniform sources.
      
      The earlier commit "intel/vec4: Try to emit a single load for multiple
      3-src instruction operands" solves most of the problems caused by
      additional immediate values, but the restrictions on register strides
      that cause problems for uniforms and shader inputs persist.
      Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
      1259f6d8
    • Ian Romanick's avatar
      intel/vec4: Try to emit immediate sources for MOV · 3a1fdca5
      Ian Romanick authored
      Per the comment in vec4_visitor::nir_emit_load_const, further
      improvement is possible in this area.  That case would be more
      complicated as I think we'd want to check that all users of the
      nir_load_const_instr result intended to use the value as float.
      
      No shader-db changes on any Gen8+ platform as these platforms do not use
      the vec4 backend.
      
      v2: Massive rebase on eeebeb21 ("intel/vec4: Try emitting non-scalar
      immediates").  This commit is about twice as helpful since b04beaf4
      ("intel/vec4: Try both sources as candidates for being immediates").
      
      Haswell and Ivy Bridge had similar results. (Haswell shown)
      total instructions in shared programs: 13478598 -> 13474068 (-0.03%)
      instructions in affected programs: 589452 -> 584922 (-0.77%)
      helped: 2773
      HURT: 0
      helped stats (abs) min: 1 max: 7 x̄: 1.63 x̃: 1
      helped stats (rel) min: 0.16% max: 5.66% x̄: 0.96% x̃: 0.83%
      95% mean confidence interval for instructions value: -1.67 -1.60
      95% mean confidence interval for instructions %-change: -0.98% -0.94%
      Instructions are helped.
      
      total cycles in shared programs: 376386916 -> 376369392 (<.01%)
      cycles in affected programs: 16871628 -> 16854104 (-0.10%)
      helped: 2293
      HURT: 523
      helped stats (abs) min: 2 max: 812 x̄: 13.80 x̃: 2
      helped stats (rel) min: <.01% max: 10.18% x̄: 1.02% x̃: 0.36%
      HURT stats (abs)   min: 2 max: 316 x̄: 26.99 x̃: 14
      HURT stats (rel)   min: <.01% max: 19.34% x̄: 2.15% x̃: 1.43%
      95% mean confidence interval for cycles value: -7.87 -4.58
      95% mean confidence interval for cycles %-change: -0.52% -0.34%
      Cycles are helped.
      
      Sandy Bridge
      total instructions in shared programs: 10860328 -> 10857675 (-0.02%)
      instructions in affected programs: 335907 -> 333254 (-0.79%)
      helped: 1639
      HURT: 0
      helped stats (abs) min: 1 max: 5 x̄: 1.62 x̃: 1
      helped stats (rel) min: 0.10% max: 5.26% x̄: 0.86% x̃: 0.70%
      95% mean confidence interval for instructions value: -1.67 -1.57
      95% mean confidence interval for instructions %-change: -0.89% -0.84%
      Instructions are helped.
      
      total cycles in shared programs: 153942720 -> 153934120 (<.01%)
      cycles in affected programs: 5604818 -> 5596218 (-0.15%)
      helped: 1494
      HURT: 97
      helped stats (abs) min: 2 max: 256 x̄: 7.84 x̃: 2
      helped stats (rel) min: 0.01% max: 6.62% x̄: 0.35% x̃: 0.18%
      HURT stats (abs)   min: 2 max: 160 x̄: 32.02 x̃: 20
      HURT stats (rel)   min: 0.02% max: 3.37% x̄: 0.88% x̃: 0.56%
      95% mean confidence interval for cycles value: -6.45 -4.36
      95% mean confidence interval for cycles %-change: -0.32% -0.23%
      Cycles are helped.
      
      Iron Lake and GM45 had similar results. (Iron Lake shown)
      total instructions in shared programs: 8139378 -> 8137267 (-0.03%)
      instructions in affected programs: 265616 -> 263505 (-0.79%)
      helped: 1148
      HURT: 0
      helped stats (abs) min: 1 max: 5 x̄: 1.84 x̃: 1
      helped stats (rel) min: 0.22% max: 4.76% x̄: 0.87% x̃: 0.62%
      95% mean confidence interval for instructions value: -1.90 -1.78
      95% mean confidence interval for instructions %-change: -0.90% -0.83%
      Instructions are helped.
      
      total cycles in shared programs: 188541756 -> 188537540 (<.01%)
      cycles in affected programs: 9807004 -> 9802788 (-0.04%)
      helped: 1143
      HURT: 4
      helped stats (abs) min: 2 max: 10 x̄: 3.70 x̃: 2
      helped stats (rel) min: <.01% max: 3.01% x̄: 0.13% x̃: 0.06%
      HURT stats (abs)   min: 2 max: 2 x̄: 2.00 x̃: 2
      HURT stats (rel)   min: 0.18% max: 0.18% x̄: 0.18% x̃: 0.18%
      95% mean confidence interval for cycles value: -3.80 -3.55
      95% mean confidence interval for cycles %-change: -0.14% -0.12%
      Cycles are helped.
      Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
      3a1fdca5
    • Ian Romanick's avatar
      intel/vec4: Try to emit a VF source in try_immediate_source · acd7796a
      Ian Romanick authored
      This commit is also a pre-requisite for the next commit.
      
      No shader-db changes on any Gen8+ platform as these platforms do not use
      the vec4 backend.
      
      v2: Massive rebase on eeebeb21 ("intel/vec4: Try emitting non-scalar
      immediates").  This change is a lot less helpful since that commit
      landed (previously helped 1934 shaders on HSW) because, apparently, a
      lot of the cases helped by that commit were things like vector loads of
      { 1.0, 1.0, 1.0 } that were also helped by this commit.
      
      Haswell
      total instructions in shared programs: 13480095 -> 13478598 (-0.01%)
      instructions in affected programs: 229534 -> 228037 (-0.65%)
      helped: 1006
      HURT: 0
      helped stats (abs) min: 1 max: 7 x̄: 1.49 x̃: 1
      helped stats (rel) min: 0.04% max: 3.45% x̄: 1.11% x̃: 1.09%
      95% mean confidence interval for instructions value: -1.54 -1.43
      95% mean confidence interval for instructions %-change: -1.15% -1.07%
      Instructions are helped.
      
      total cycles in shared programs: 376385734 -> 376386916 (<.01%)
      cycles in affected programs: 14101380 -> 14102562 (<.01%)
      helped: 941
      HURT: 56
      helped stats (abs) min: 2 max: 322 x̄: 5.62 x̃: 2
      helped stats (rel) min: <.01% max: 7.74% x̄: 0.51% x̃: 0.42%
      HURT stats (abs)   min: 2 max: 618 x̄: 115.50 x̃: 32
      HURT stats (rel)   min: 0.03% max: 4.62% x̄: 0.83% x̃: 0.44%
      95% mean confidence interval for cycles value: -2.06 4.43
      95% mean confidence interval for cycles %-change: -0.47% -0.39%
      Inconclusive result (value mean confidence interval includes 0).
      
      Ivy Bridge
      total instructions in shared programs: 12048004 -> 12046589 (-0.01%)
      instructions in affected programs: 217072 -> 215657 (-0.65%)
      helped: 934
      HURT: 0
      helped stats (abs) min: 1 max: 7 x̄: 1.51 x̃: 1
      helped stats (rel) min: 0.04% max: 3.45% x̄: 1.14% x̃: 1.11%
      95% mean confidence interval for instructions value: -1.57 -1.46
      95% mean confidence interval for instructions %-change: -1.18% -1.10%
      Instructions are helped.
      
      total cycles in shared programs: 180285854 -> 180287608 (<.01%)
      cycles in affected programs: 14103824 -> 14105578 (0.01%)
      helped: 871
      HURT: 53
      helped stats (abs) min: 2 max: 322 x̄: 5.51 x̃: 2
      helped stats (rel) min: <.01% max: 7.67% x̄: 0.50% x̃: 0.42%
      HURT stats (abs)   min: 2 max: 618 x̄: 123.66 x̃: 32
      HURT stats (rel)   min: 0.03% max: 4.47% x̄: 0.92% x̃: 0.46%
      95% mean confidence interval for cycles value: -1.60 5.39
      95% mean confidence interval for cycles %-change: -0.46% -0.37%
      Inconclusive result (value mean confidence interval includes 0).
      
      Sandy Bridge
      total instructions in shared programs: 10861227 -> 10860328 (<.01%)
      instructions in affected programs: 92969 -> 92070 (-0.97%)
      helped: 624
      HURT: 0
      helped stats (abs) min: 1 max: 7 x̄: 1.44 x̃: 1
      helped stats (rel) min: 0.11% max: 3.45% x̄: 1.05% x̃: 0.95%
      95% mean confidence interval for instructions value: -1.52 -1.36
      95% mean confidence interval for instructions %-change: -1.09% -1.01%
      Instructions are helped.
      
      total cycles in shared programs: 153944316 -> 153942720 (<.01%)
      cycles in affected programs: 1640956 -> 1639360 (-0.10%)
      helped: 601
      HURT: 15
      helped stats (abs) min: 2 max: 120 x̄: 3.56 x̃: 2
      helped stats (rel) min: 0.02% max: 6.33% x̄: 0.18% x̃: 0.08%
      HURT stats (abs)   min: 2 max: 72 x̄: 36.13 x̃: 36
      HURT stats (rel)   min: 0.05% max: 3.84% x̄: 1.95% x̃: 2.00%
      95% mean confidence interval for cycles value: -3.44 -1.74
      95% mean confidence interval for cycles %-change: -0.18% -0.09%
      Cycles are helped.
      
      Iron Lake and GM45 had similar results. (Iron Lake shown)
      total instructions in shared programs: 8139924 -> 8139378 (<.01%)
      instructions in affected programs: 69776 -> 69230 (-0.78%)
      helped: 322
      HURT: 0
      helped stats (abs) min: 1 max: 8 x̄: 1.70 x̃: 1
      helped stats (rel) min: 0.27% max: 3.23% x̄: 0.79% x̃: 0.54%
      95% mean confidence interval for instructions value: -1.88 -1.51
      95% mean confidence interval for instructions %-change: -0.85% -0.72%
      Instructions are helped.
      
      total cycles in shared programs: 188542864 -> 188541756 (<.01%)
      cycles in affected programs: 3031532 -> 3030424 (-0.04%)
      helped: 320
      HURT: 0
      helped stats (abs) min: 2 max: 20 x̄: 3.46 x̃: 2
      helped stats (rel) min: <.01% max: 0.69% x̄: 0.06% x̃: 0.06%
      95% mean confidence interval for cycles value: -3.85 -3.07
      95% mean confidence interval for cycles %-change: -0.06% -0.05%
      Cycles are helped.
      Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
      acd7796a
    • Ian Romanick's avatar
      intel/vec4: Try to emit a single load for multiple 3-src instruction operands · 365b45d5
      Ian Romanick authored
      If a 3-source instruction uses immediate values 1.0 and -1.0, just load
      1.0 into a register.  Use the negation source modifier to get -1.0.
      This has trivial impact now, but it prevents a few thousand regressions
      on vec4 platforms with "nir/algebraic: Recognize open-coded flrp(-1, 1,
      a) and flrp(1, -1, a)"
      
      All Gen6 and Gen7 platforms had similar results. (Haswell shown)
      total instructions in shared programs: 13487412 -> 13487406 (<.01%)
      instructions in affected programs: 541 -> 535 (-1.11%)
      helped: 6
      HURT: 0
      helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
      helped stats (rel) min: 0.36% max: 2.08% x̄: 1.65% x̃: 1.80%
      95% mean confidence interval for instructions value: -1.00 -1.00
      95% mean confidence interval for instructions %-change: -2.33% -0.97%
      Instructions are helped.
      
      total cycles in shared programs: 376402564 -> 376402500 (<.01%)
      cycles in affected programs: 10348 -> 10284 (-0.62%)
      helped: 10
      HURT: 1
      helped stats (abs) min: 2 max: 26 x̄: 7.00 x̃: 2
      helped stats (rel) min: 0.13% max: 2.05% x̄: 0.89% x̃: 0.79%
      HURT stats (abs)   min: 6 max: 6 x̄: 6.00 x̃: 6
      HURT stats (rel)   min: 0.29% max: 0.29% x̄: 0.29% x̃: 0.29%
      95% mean confidence interval for cycles value: -11.72 0.08
      95% mean confidence interval for cycles %-change: -1.20% -0.36%
      Inconclusive result (value mean confidence interval includes 0).
      
      No shader-db changes on any other Intel platform.
      Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
      365b45d5
    • Ian Romanick's avatar
      6f6bc842
    • Alyssa Rosenzweig's avatar
    • Alyssa Rosenzweig's avatar
      pan/decode: Depth units/factor are identical to GL · 7a36c72f
      Alyssa Rosenzweig authored
      I'm not sure why I thoughtt here was an off-by-one, other than maybe bad
      data collection.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      7a36c72f
    • Christian Gmeiner's avatar
      etnaviv: remove dead translate_ts_sampler_format(..) declaration · a7153ebc
      Christian Gmeiner authored
      Fixes: 66411521 ("etnaviv: combine translate_ts_sampler_format/translate_msaa_format")
      Signed-off-by: Christian Gmeiner's avatarChristian Gmeiner <christian.gmeiner@gmail.com>
      Reviewed-by: Jonathan Marek's avatarJonathan Marek <jonathan@marek.ca>
      a7153ebc
    • Caio Marcelo de Oliveira Filho's avatar
      intel/fs: Add support for SLM fence in Gen11 · b390ff35
      Caio Marcelo de Oliveira Filho authored
      Gen11 SLM is not on L3 anymore, so now the hardware has two separate
      fences.  Add a way to control which fence types to use.
      
      At this time, we don't have enough information in NIR to control the
      visibility of the memory being fenced, so for now be conservative and
      assume that fences will need a stall.  With more information later
      we'll be able to reduce those.
      
      Fixes Vulkan CTS tests in ICL:
      
          dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_nonlocal.workgroup.guard_local.buffer.comp
          dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.buffer.guard_nonlocal.workgroup.comp
          dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.image.guard_nonlocal.workgroup.comp
          dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_local.buffer.guard_nonlocal.workgroup.comp
          dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_local.image.guard_nonlocal.workgroup.comp
      
      The whole set of supported tests in dEQP-VK.memory_model.* group
      should be passing in ICL now.
      
      v2: Pass BTI around instead of having an enum.  (Jason)
          Emit two SHADER_OPCODE_MEMORY_FENCE instead of one that gets
          transformed into two.  (Jason)
          List tests fixed.  (Lionel)
      
      v3: For clarity, split the decision of which fences to emit from the
          emission code.  (Jason)
      Reviewed-by: Jason Ekstrand's avatarJason Ekstrand <jason@jlekstrand.net>
      Acked-by: Lionel Landwerlin's avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      b390ff35
    • Tomeu Vizoso's avatar
      Revert "panfrost/midgard: Use _safe iterator" · 838374b6
      Tomeu Vizoso authored
      This reverts commit 812ce2ce.
      
      We massively regress with the reverted patch. So in the meantime, take
      it out.
      Signed-off-by: 's avatarTomeu Vizoso <tomeu.vizoso@collabora.com>
      838374b6
    • Alyssa Rosenzweig's avatar
      panfrost: Don't lie about Z/S formats · 507e2974
      Alyssa Rosenzweig authored
      Only Z24S8 is properly supported right now, so let's be careful. Fixes a
      number of issues relating to improper Z/S handling. The most obvious is
      depth buffers with incorrect strides, which manifests in truly bizarre
      ways and can happen commonly with FBOs.
      
      Fixes WebGL (Aquarium runs, etc).
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      507e2974
    • Samuel Pitoiset's avatar
    • Bas Nieuwenhuizen's avatar
      radv/gfx10: Fix NGG GS output mask handlings for LDS indexing. · 0a8ef756
      Bas Nieuwenhuizen authored
      In emit_vertex we optimize storage if the output mask does not
      have all bits set. Do the same in the epilogue so the indices
      actually match up.
      
      Fixes dEQP-VK.geometry.input.basic_primitive.points because it
      outputs PSIZE with an output mask of 1, which cause the generic
      attribute for the color to be loaded from the wrong indices.
      Reviewed-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      0a8ef756
    • Bas Nieuwenhuizen's avatar
      radv/gfx10: Simplify output mask handling for NGG GS. · f5982917
      Bas Nieuwenhuizen authored
      We only ever get in this function for a NGG GS proper.
      Reviewed-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      f5982917
    • Bas Nieuwenhuizen's avatar
      7515f41c
    • Samuel Pitoiset's avatar
    • Bas Nieuwenhuizen's avatar
    • Bas Nieuwenhuizen's avatar
      radv/gfx10: Do not allocate a gs_copy_shader on gfx10. · 45b73b3a
      Bas Nieuwenhuizen authored
      Will use ngg for any gs anyway.
      Reviewed-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      45b73b3a
    • Samuel Pitoiset's avatar
      radv/gfx10: fix VGT_SHADER_STAGES_EN for GS as NGG · ef5efb40
      Samuel Pitoiset authored
      The driver shouldn't set the copy shader bit.
      Signed-off-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      Reviewed-by: Bas Nieuwenhuizen's avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
      ef5efb40
    • Samuel Pitoiset's avatar
    • Tomeu Vizoso's avatar
      panfrost/midgard: Use _safe iterator · 812ce2ce
      Tomeu Vizoso authored
      Fixes this assertion:
      
      ../mesa/src/panfrost/midgard/midgard_schedule.c:507:schedule_block: Assertion `ins == __next && "use _safe iterator"' failed.
      Trace/breakpoint trap
      Signed-off-by: 's avatarTomeu Vizoso <tomeu.vizoso@collabora.com>
      Reviewed-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      812ce2ce
    • Tomeu Vizoso's avatar
      panfrost: Place the height value in the height field · 82ee48e5
      Tomeu Vizoso authored
      In the mali_single_framebuffer descriptor.
      Signed-off-by: 's avatarTomeu Vizoso <tomeu.vizoso@collabora.com>
      Reviewed-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      
      v2: Remove unwanted chunks
      82ee48e5
    • Samuel Pitoiset's avatar
      radv/gfx10: fix maximum number of mip levels for 3D images · 022b1f41
      Samuel Pitoiset authored
      The dimensions also have to be adjusted if the number of supported
      mip levels is changed.
      
      This fixes dEQP-VK.api.info.image_format_properties.3d.*.
      Signed-off-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      Reviewed-by: Bas Nieuwenhuizen's avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
      022b1f41
    • Samuel Pitoiset's avatar
      radv/gfx10: disable TC-compat HTILE for multisampled D32_SFLOAT format · f3dfdd40
      Samuel Pitoiset authored
      For some reasons D32_SFLOAT is also affected on GFX10, it works
      fine with previous generations.
      
      This fixes some dEQP-VK.renderpass2.depth_stencil_resolve.*.
      Signed-off-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      Reviewed-by: Bas Nieuwenhuizen's avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
      f3dfdd40
    • Kenneth Graunke's avatar
      iris: Fix key->input_vertices for 8_PATCH TCS mode. · a01770b9
      Kenneth Graunke authored
      We were failing to flag the program dirty when it changed.  Also, we
      were unnecessarily setting key->input_vertices for SINGLE_PATCH mode,
      which would reduce program cache hits.  Only set it if needed.
      a01770b9
    • Kenneth Graunke's avatar
      iris: Only set key->flat_shade if COL0/COL1 are written. · c58f52f0
      Kenneth Graunke authored
      This was just laziness on my part, we already added similar checks in
      the VS key handling.  Just need to do it here too.  Should improve cache
      hits.
      c58f52f0
    • Kenneth Graunke's avatar
      iris: Drop comment about var->data.binding not being set. · cb82d534
      Kenneth Graunke authored
      I refactored the sampler lowering passes a long time ago to ensure
      that gl_nir_lower_samplers_as_deref is run and var->data.binding is set.
      cb82d534
    • Kenneth Graunke's avatar
      iris: Drop comments about missing NOS · 38f99542
      Kenneth Graunke authored
      These stages don't need NOS.  If they do, we can add it - the
      infrastructure is there if we need it someday.
      38f99542
    • Kenneth Graunke's avatar
      iris: Drop a TODO comment · 2bd1234a
      Kenneth Graunke authored
      This is literally implemented two lines above.
      2bd1234a
    • Neil Roberts's avatar
      glsl/builtin types: Set the precision on the depth range params · eae06b34
      Neil Roberts authored
      The members of gl_DepthRangeParameters are declared to be highp in
      GLSL ES specs.
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      eae06b34
    • Neil Roberts's avatar
      glsl: Add a constructor for glsl_struct_field to specify the precision · 74d71dac
      Neil Roberts authored
      Adds a third constructor to glsl_struct_field which has an extra
      parameter to specify the precision.
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      74d71dac
    • Neil Roberts's avatar
      glsl: Add a macro for the default values for glsl_struct_field · 014be603
      Neil Roberts authored
      There are two constructors for glsl_struct_field with different
      parameters. Instead of repeating them for both constructors, this
      patch adds a convenience macro. This will make it easier to add a
      third constructor in a later patch.
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      014be603
    • Neil Roberts's avatar
      glsl/builtin_variables: Add a precision to the builtins · ca6ee488
      Neil Roberts authored
      All of the builtin variables mentioned in the GLSL ES spec and the
      extensions include a precision declaration which is different
      depending on what the variable is used for. This patch makes it set
      the corresponding precision when creating the variable. This will make
      a difference once we start using the precision information for
      optimisation. Previously all of the builtin variables ended up with a
      precision of NONE.
      
      v2: Made gl_PointSize and gl_FragCoord highp since GLSL ES 3.00. Fixed
          gl_MaxViewPorts to always be highp. (Eric Anholt)
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      ca6ee488