1. 25 Feb, 2019 1 commit
  2. 18 Feb, 2019 7 commits
  3. 17 Feb, 2019 2 commits
  4. 16 Feb, 2019 15 commits
  5. 15 Feb, 2019 15 commits
    • Eleni Maria Stea's avatar
      i965: Removed the field etc_format from the struct intel_mipmap_tree · 7188e2ba
      Eleni Maria Stea authored
      
      
      After the previous changes to emulate the ETC/EAC formats using the
      secondary shadow miptree, the etc_format field of the intel_mipmap_tree
      struct became redundant and the remaining check that used it has been
      replaced. (Nanley Chery)
      Reviewed-by: Nanley Chery's avatarNanley Chery <nanley.g.chery@intel.com>
      7188e2ba
    • Eleni Maria Stea's avatar
      i965: Enabled the OES_copy_image extension on Gen 7 GPUs · 248f2e78
      Eleni Maria Stea authored
      
      
      OES_copy_image extension was disabled on Gen7 due to the lack of support
      for ETC2 images. Enabled it back. (Kenneth Graunke)
      
      v2:
        - Removed the blank lines in the comments above OES_copy_image and
        OES_texture_view extensions in intel_extensions.c (Nanley Chery)
      Reviewed-by: Nanley Chery's avatarNanley Chery <nanley.g.chery@intel.com>
      248f2e78
    • Eleni Maria Stea's avatar
      i965: Fixed the CopyImageSubData for ETC2 on Gen < 8 · db0c379c
      Eleni Maria Stea authored
      
      
      For CopyImageSubData to copy the data during the 1st draw call, we need
      to update the shadow tree right before the rendering.
      
      v2:
        - Added assertion that the miptree doesn't need update at the time we
        update the texture surface. (Nanley Chery)
      
      v3:
        - As we now update the tree before the rendering we don't need to copy
        the data during the unmap anymore. Removed the unnecessary update from
        the intel_miptree_unmap in intel_mipmap_tree.c (Nanley Chery)
      
      v4:
        - Fixed unrelated empty line removal (Nanley Chery)
        - As now the intel_upate_etc_shadow of intel_mipmap_tree.c is only
        called inside its following function, we don't need to declare it at
        the top of the file anymore. (Nanley Chery)
      Reviewed-by: Nanley Chery's avatarNanley Chery <nanley.g.chery@intel.com>
      db0c379c
    • Eleni Maria Stea's avatar
      i965: Faking the ETC2 compression on Gen < 8 GPUs using two miptrees. · d8eb7287
      Eleni Maria Stea authored
      GPUs Gen < 8 cannot sample ETC2 formats. So far, they converted the
      compressed EAC/ETC2 images to non-compressed RGBA images. When
      GetCompressed* functions were called, the pixels were returned in this
      RGBA format and not the compressed format that was expected.
      
      Trying to fix this problem, we use a secondary shadow miptree to store the
      decompressed data for the rendering and the main miptree to store the
      compressed for the Get functions to work. Each time that the main miptree
      is written with compressed data, we decompress them to RGB and update the
      shadow. Then we use the shadow for rendering.
      
      v2:
         - Fixes in the commit message (Nanley Chery)
         - Reversed the changes in brw_get_texture_swizzle and swapped the b, g
         values at the time that we decompress the data in the function:
         intel_miptree_update_etc_shadow of intel_mipmap_tree.c (Nanley Chery)
         - Simplified the format checks in the miptree_create function of the
         intel_mipmap_tree.c and reserved the call of the
         intel_lower_compressed_format for the case that we are faking the ETC
         support (Nanley Chery)
         - Removed the check for the auxiliary usage for the shadow miptree at
         creation (miptree_create of intel_mipmap_tree.c) as we won't use
         auxiliary buffers with these types of trees (Nanley Chery)
         - Set the etc_format of the non-ETC miptrees to MESA_FORMAT_NONE and
         removed the unecessary checks (Nanley Chery)
         - Fixed an unrelated indentation change (Nanley Chery)
         - Modified the function intel_miptree_finish_write to set the
         mt->shadow_needs_update to true to catch all the cases when we need to
         update the miptree (Nanley Chery)
         - In order to update the shadow miptree during the unmap of the
         main and always map the main (Nanley Chery) the following change was
         necessary: Splitted the previous update function that was updating all
         the mipmap levels and use two functions instead: one that updates one
         level and one that updates all of them. Used the first during unmap
         and the second before the rendering.
         - Removed the BRW_MAP_ETC_BIT flag and the mechanism to decide which
         miptree should be mapped each time and reversed all the changes in the
         higher level texture functions that upload data to textures as they
         aren't needed anymore.
         - Replaced the boolean needs_fake_etc with an inline function that
         checks when we need to fake the ETC compression (Nanley Chery)
         - Removed the initialization of the strides in the update function as
         the values will be overwritten by the intel_miptree_map call (Nanley
         Chery)
         - Used minify instead of division in the new update function
         intel_miptree_update_etc_shadow_levels in intel_mipmap_tree.c (Nanley
         Chery)
         - Removed the depth from the calculation of the number of slices in
         the new update function (intel_miptree_update_etc_shadow_levels of
         intel_mipmap_tree.c) as we don't need to support 3D ETC images.
         (Nanley Chery)
      
      v3:
        - Renamed the rgba_fmt in function miptree_create
        (intel_mipmap_tree.c) to decomp_format as the format is not always in
        rgba order. (Nanley Chery)
        - Documented the new usage for the shadow miptree in the comment above
        the field in the intel_miptree struct in intel_mipmap_tree.h (Nanley
        Chery)
        - Removed the redundant flags from the mapping of the miptrees in
        intel_miptree_update_etc_shadow of intel_mipmap_tree.c (Nanley Chery)
        - Fixed the switch from surface's logical level to physical level in
        the intel_miptree_update_etc_shadow_levels of intel_mipmap_tree.c
        (Nanley Chery)
        - Excluded the Baytrail GPUs from the check for the ETC emulation as
        they support the ETC formats natively. (Nanley Chery)
        - Simplified the check if the format is BGRA in
        intel_miptree_update_etc_shadow of intel_mipmap_tree.c (Nanley Chery)
      
      v4:
        - Removed the functions intel_miptree_(map|unmap)_etc and the check if
         we need to call them as with the new changes, they became unreachable.
         (Nanley Chery)
        - We'd rather calculate the level width and height using the shadow
        miptree instead of the main in intel_miptree_update_etc_shadow_levels of
        intel_mipmap_tree.c (Nanley Chery)
        - Fixed the format in the mt_surface_usage, set at the miptree creation,
         in miptree_create of intel_mipmap_tree.c (Nanley Chery)
      
      v5:
        - Fixed the levels calculations in intel_mipmap_tree.c (Nanley Chery)
        - Update the flag shadow_needs_update outside the function
        intel_miptree_update_etc_shadow (Nanley Chery)
        - Fixed indentation error (Nanley Chery)
      
      v6:
        - Fixed typo in commit message (Nanley Chery)
        - Simplified the assignment of the mt_fmt in the miptree_create of the
        intel_mipmap_tree.c (Nanley Chery)
        - Combined declarations and assignments where it was possible in the
        intel_miptree_update_etc_shadow and
        intel_miptree_update_etc_shadow_levels of the intel_mipmap_tree.c
        (Nanley Chery)
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81843
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104272
      
      Reviewed-by: Nanley Chery's avatarNanley Chery <nanley.g.chery@intel.com>
      d8eb7287
    • Nanley Chery's avatar
      i965: Rename intel_mipmap_tree::r8stencil_* -> ::shadow_* · c6dada70
      Nanley Chery authored
      
      
      Use more generic field names. We'll reuse these fields for a workaround
      with ASTC miptrees.
      Reviewed-by: Eleni Maria Stea's avatarEleni Maria Stea <estea@igalia.com>
      c6dada70
    • Timothy Arceri's avatar
      nir: remove simple dead if detection from nir_opt_dead_cf() · a801196e
      Timothy Arceri authored
      
      
      This was probably useful when it was first written, however it
      looks to be no longer necessary.
      
      As far as I can tell these days dce is smart enough to remove useless
      instructions from if branches. Once this is done
      nir_opt_peephole_select() will end up removing the empty if.
      
      Removing this support reduces the dolphin uber shader compilation
      time spent in nir_opt_dead_cf() by a little over 7x.
      
      No shader-db changes on i965 or radeonsi.
      Tested-by: Dieter Nützel's avatarDieter Nützel <Dieter@nuetzel-hh.de>
      Reviewed-by: Jason Ekstrand's avatarJason Ekstrand <jason@jlekstrand.net>
      Reviewed-by: Connor Abbott's avatarConnor Abbott <cwabbott0@gmail.com>
      a801196e
    • Alok Hota's avatar
      f695e433
    • Alok Hota's avatar
      swr/rast: simdlib cleanup, clipper stack space fixes · a7fa0cc0
      Alok Hota authored
      
      
      Reduce stack space used by clipper, which had lead to crashes in some
      versions for MSVC
      Reviewed-by: Bruce Cherniak's avatarBruce Cherniak <bruce.cherniak@intel.com>
      a7fa0cc0
    • Alok Hota's avatar
    • Alok Hota's avatar
      c503b588
    • Alok Hota's avatar
      swr/rast: FP consistency between POSH/RENDER pipes · 0b4db437
      Alok Hota authored
      
      
      - Ensure all threads have optimal floating-point control state
      - Disable auto-generation of fused FP ops for VERTEX shader stage
      - Disable "fast" FP ops for VERTEX shader stage
      Reviewed-by: Bruce Cherniak's avatarBruce Cherniak <bruce.cherniak@intel.com>
      0b4db437
    • Alok Hota's avatar
      swr/rast: Move knob defaults to generated cpp file · dc7b3c95
      Alok Hota authored
      
      
      Reduces amount of compile churn when testing different default values
      Reviewed-by: Bruce Cherniak's avatarBruce Cherniak <bruce.cherniak@intel.com>
      dc7b3c95
    • Alok Hota's avatar
      swr/rast: Flip BitScanReverse index calculation · 05e4ff33
      Alok Hota authored
      
      
      The intrinsic returns the number of leading zeros, not the bit number of
      the first nonzero, so just flip it based on the mask size
      Reviewed-by: Bruce Cherniak's avatarBruce Cherniak <bruce.cherniak@intel.com>
      05e4ff33
    • Alok Hota's avatar
      swr/rast: Correctly align 64-byte spills/fills · ae400a9b
      Alok Hota authored
      
      
      Fixes crashes on some compute shaders when running on AVX512
      Reviewed-by: Bruce Cherniak's avatarBruce Cherniak <bruce.cherniak@intel.com>
      ae400a9b
    • Alok Hota's avatar
      swr/rast: Disable use of __forceinline by default · 78bab664
      Alok Hota authored
      
      
      - Was not useful to inline in release builds
      - FORCEINLINE can be used if absolutely necessary
      Reviewed-by: Bruce Cherniak's avatarBruce Cherniak <bruce.cherniak@intel.com>
      78bab664