Merge branch 'master' into pipe-video
authorThomas Balling Sørensen <tball@tball-laptop.(none)>
Tue, 26 Oct 2010 10:49:41 +0000 (12:49 +0200)
committerThomas Balling Sørensen <tball@tball-laptop.(none)>
Tue, 26 Oct 2010 10:49:41 +0000 (12:49 +0200)
Conflicts:
src/gallium/include/pipe/p_format.h

1  2 
src/gallium/auxiliary/Makefile
src/gallium/auxiliary/SConscript
src/gallium/auxiliary/util/u_format.csv
src/gallium/drivers/softpipe/sp_screen.c
src/gallium/include/pipe/p_defines.h
src/gallium/include/pipe/p_format.h

index 05096b12a86f984c55e1f4abb6f20bf732910d3a,abd33f6eef11c4462de01f5bfee1a48a482854e2..ed96725d782cd2f910c216cd989069a91f32019b
@@@ -143,11 -143,14 +143,11 @@@ C_SOURCES = 
        util/u_transfer.c \
        util/u_resource.c \
        util/u_upload_mgr.c \
 -      target-helpers/wrap_screen.c
 -
 -      # Disabling until pipe-video branch gets merged in
 -      #vl/vl_bitstream_parser.c \
 -      #vl/vl_mpeg12_mc_renderer.c \
 -      #vl/vl_compositor.c \
 -      #vl/vl_csc.c \
 -      #vl/vl_shader_build.c \
 +      target-helpers/wrap_screen.c \
 +      vl/vl_bitstream_parser.c \
 +      vl/vl_mpeg12_mc_renderer.c \
 +      vl/vl_compositor.c \
 +      vl/vl_csc.c
  
  GALLIVM_SOURCES = \
          gallivm/lp_bld_arit.c \
          gallivm/lp_bld_struct.c \
          gallivm/lp_bld_swizzle.c \
          gallivm/lp_bld_tgsi_aos.c \
+         gallivm/lp_bld_tgsi_info.c \
          gallivm/lp_bld_tgsi_soa.c \
          gallivm/lp_bld_type.c \
          draw/draw_llvm.c \
index a18f7c0b2a386a4febd9ef6247e13f660ea321a4,94cd74424a07133115e380f99feb12df365b7084..f22c8b96123b25bf5cc1ebfc793da4613e579afa
@@@ -192,10 -192,12 +192,10 @@@ source = 
      'util/u_tile.c',
      'util/u_transfer.c',
      'util/u_upload_mgr.c',
 -    # Disabling until pipe-video branch gets merged in
 -    #'vl/vl_bitstream_parser.c',
 -    #'vl/vl_mpeg12_mc_renderer.c',
 -    #'vl/vl_compositor.c',
 -    #'vl/vl_csc.c',
 -    #'vl/vl_shader_build.c',
 +    'vl/vl_bitstream_parser.c',
 +    'vl/vl_mpeg12_mc_renderer.c',
 +    'vl/vl_compositor.c',
 +    'vl/vl_csc.c',
      'target-helpers/wrap_screen.c',
  ]
  
@@@ -225,6 -227,7 +225,7 @@@ if env['llvm']
      'gallivm/lp_bld_struct.c',
      'gallivm/lp_bld_swizzle.c',
      'gallivm/lp_bld_tgsi_aos.c',
+     'gallivm/lp_bld_tgsi_info.c',
      'gallivm/lp_bld_tgsi_soa.c',
      'gallivm/lp_bld_type.c',
      'draw/draw_llvm.c',
index 0811280b97bedfbeab8c66be54b3d8e2261edfb3,1fbd83841c1ee0bc991c1e28bcc1f67c0ac490ff..8e5d4487a67286db2715dc58ef8772079fce85a5
@@@ -109,9 -109,12 +109,12 @@@ PIPE_FORMAT_Z32_UNORM               , p
  PIPE_FORMAT_Z32_FLOAT               , plain, 1, 1, f32 ,     ,     ,     , x___, zs
  PIPE_FORMAT_Z24_UNORM_S8_USCALED    , plain, 1, 1, un24, u8  ,     ,     , xy__, zs
  PIPE_FORMAT_S8_USCALED_Z24_UNORM    , plain, 1, 1, u8 ,  un24,     ,     , yx__, zs
+ PIPE_FORMAT_X24S8_USCALED           , plain, 1, 1, x24,  u8  ,     ,     , _y__, zs
+ PIPE_FORMAT_S8X24_USCALED           , plain, 1, 1, u8  , x24 ,     ,     , _x__, zs
  PIPE_FORMAT_Z24X8_UNORM             , plain, 1, 1, un24, x8  ,     ,     , x___, zs
  PIPE_FORMAT_X8Z24_UNORM             , plain, 1, 1, x8  , un24,     ,     , y___, zs
  PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED , plain, 1, 1, f32,  u8  , x24 ,     , xy__, zs
+ PIPE_FORMAT_X32_S8X24_USCALED       , plain, 1, 1, x32,  u8  , x24 ,     , _y__, zs
  
  # YUV formats
  # http://www.fourcc.org/yuv.php#UYVY
@@@ -230,11 -233,3 +233,11 @@@ PIPE_FORMAT_R32G32B32A32_FIXED    , pla
  PIPE_FORMAT_R10G10B10X2_USCALED   , plain, 1, 1, u10 , u10 , u10  , x2 , xyz1, rgb
  # A.k.a. D3DDECLTYPE_DEC3N
  PIPE_FORMAT_R10G10B10X2_SNORM     , plain, 1, 1, sn10, sn10, sn10 , x2 , xyz1, rgb
 +
 +PIPE_FORMAT_YV12                  , subsampled, 1, 1, x8  , x8  , x8  , x8  , xyzw, yuv
 +PIPE_FORMAT_YV16                  , subsampled, 1, 1, x8  , x8  , x8  , x8  , xyzw, yuv
 +PIPE_FORMAT_IYUV                  , subsampled, 1, 1, x8  , x8  , x8  , x8  , xyzw, yuv
 +PIPE_FORMAT_NV12                  , subsampled, 1, 1, x8  , x8  , x8  , x8  , xyzw, yuv
 +PIPE_FORMAT_NV21                  , subsampled, 1, 1, x8  , x8  , x8  , x8  , xyzw, yuv
 +PIPE_FORMAT_IA44                  , subsampled, 1, 1, x8  , x8  , x8  , x8  , xyzw, yuv
 +PIPE_FORMAT_AI44                  , subsampled, 1, 1, x8  , x8  , x8  , x8  , xyzw, yuv
index 25a0a6221798c762a6be5c25da7c75839bb219a6,d90cf56808ccf1dd5d698a0d69739416d89d088d..edc2a6dacf27ca8d004353b7769b7aad5057745b
@@@ -39,7 -39,6 +39,7 @@@
  #include "sp_texture.h"
  #include "sp_screen.h"
  #include "sp_context.h"
 +#include "sp_video_context.h"
  #include "sp_fence.h"
  #include "sp_public.h"
  
@@@ -113,8 -112,12 +113,12 @@@ softpipe_get_param(struct pipe_screen *
        return 1;
     case PIPE_CAP_STREAM_OUTPUT:
        return 1;
+    case PIPE_CAP_PRIMITIVE_RESTART:
+       return 1;
     case PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE:
        return 0;
+    case PIPE_CAP_SHADER_STENCIL_EXPORT:
+       return 1;
     default:
        return 0;
     }
@@@ -206,13 -209,6 +210,6 @@@ softpipe_is_format_supported( struct pi
        if (format_desc->block.width != 1 ||
            format_desc->block.height != 1)
           return FALSE;
-       /*
-        * TODO: Unfortunately we cannot render into anything more than 32 bits
-        * because we encode color clear values into a 32bit word.
-        */
-       if (format_desc->block.bits > 32)
-          return FALSE;
     }
  
     if (bind & PIPE_BIND_DEPTH_STENCIL) {
@@@ -302,7 -298,6 +299,7 @@@ softpipe_create_screen(struct sw_winsy
     screen->base.is_format_supported = softpipe_is_format_supported;
     screen->base.context_create = softpipe_create_context;
     screen->base.flush_frontbuffer = softpipe_flush_frontbuffer;
 +   screen->base.video_context_create = sp_video_create;
  
     util_format_s3tc_init();
  
index d2273b334a68a1865600ffedace59942498b3649,53f7b601ad58a7a83d81f7c7c28741594852b57c..e30b9904fa51e2091fd7e45caf51671dceb0f71f
@@@ -452,6 -452,7 +452,7 @@@ enum pipe_cap 
     PIPE_CAP_BLEND_EQUATION_SEPARATE,
     PIPE_CAP_SM3,  /*< Shader Model, supported */
     PIPE_CAP_STREAM_OUTPUT,
+    PIPE_CAP_PRIMITIVE_RESTART,
     /** Maximum texture image units accessible from vertex and fragment shaders
      * combined */
     PIPE_CAP_MAX_COMBINED_SAMPLERS,
     PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT,
     PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER,
     PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER,
-    PIPE_CAP_DEPTH_CLAMP
+    PIPE_CAP_DEPTH_CLAMP,
+    PIPE_CAP_SHADER_STENCIL_EXPORT,
  };
  
  /* Shader caps not specific to any single stage */
@@@ -492,33 -494,6 +494,33 @@@ enum pipe_shader_ca
  #define PIPE_REFERENCED_FOR_READ  (1 << 0)
  #define PIPE_REFERENCED_FOR_WRITE (1 << 1)
  
 +
 +enum pipe_video_codec
 +{
 +   PIPE_VIDEO_CODEC_UNKNOWN = 0,
 +   PIPE_VIDEO_CODEC_MPEG12,   /**< MPEG1, MPEG2 */
 +   PIPE_VIDEO_CODEC_MPEG4,    /**< DIVX, XVID */
 +   PIPE_VIDEO_CODEC_VC1,      /**< WMV */
 +   PIPE_VIDEO_CODEC_MPEG4_AVC /**< H.264 */
 +};
 +
 +enum pipe_video_profile
 +{
 +   PIPE_VIDEO_PROFILE_UNKNOWN,
 +   PIPE_VIDEO_PROFILE_MPEG1,
 +   PIPE_VIDEO_PROFILE_MPEG2_SIMPLE,
 +   PIPE_VIDEO_PROFILE_MPEG2_MAIN,
 +   PIPE_VIDEO_PROFILE_MPEG4_SIMPLE,
 +   PIPE_VIDEO_PROFILE_MPEG4_ADVANCED_SIMPLE,
 +   PIPE_VIDEO_PROFILE_VC1_SIMPLE,
 +   PIPE_VIDEO_PROFILE_VC1_MAIN,
 +   PIPE_VIDEO_PROFILE_VC1_ADVANCED,
 +   PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE,
 +   PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN,
 +   PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH
 +};
 +
 +
  /**
   * Composite query types
   */
@@@ -533,7 -508,6 +535,7 @@@ struct pipe_query_data_timestamp_disjoi
     boolean  disjoint;
  };
  
 +
  #ifdef __cplusplus
  }
  #endif
index 240e349ba7e599e283e7311812196fd395a7548d,22cc7aa18a25fc2f5cb65c646c9b5af0cb6d57ff..9a59c9f9ea0600d6cf77a12ec9ade7b124c57bec
@@@ -186,27 -186,13 +186,31 @@@ enum pipe_format 
     PIPE_FORMAT_R8G8B8X8_UNORM          = 134,
     PIPE_FORMAT_B4G4R4X4_UNORM          = 135,
  
 +   PIPE_FORMAT_YV12                  = 136,
 +   PIPE_FORMAT_YV16                  = 137,
 +   PIPE_FORMAT_IYUV                  = 138,  /**< aka I420 */
 +   PIPE_FORMAT_NV12                  = 139,
 +   PIPE_FORMAT_NV21                  = 140,
 +   PIPE_FORMAT_AYUV                  = PIPE_FORMAT_A8R8G8B8_UNORM,
 +   PIPE_FORMAT_VUYA                  = PIPE_FORMAT_B8G8R8A8_UNORM,
 +   PIPE_FORMAT_XYUV                  = PIPE_FORMAT_X8R8G8B8_UNORM,
 +   PIPE_FORMAT_VUYX                  = PIPE_FORMAT_B8G8R8X8_UNORM,
 +   PIPE_FORMAT_IA44                  = 141,
 +   PIPE_FORMAT_AI44                  = 142,
 +
+    /* some stencil samplers formats */
+    PIPE_FORMAT_X24S8_USCALED           = 136,
+    PIPE_FORMAT_S8X24_USCALED           = 137,
+    PIPE_FORMAT_X32_S8X24_USCALED       = 138,
     PIPE_FORMAT_COUNT
  };
  
 +enum pipe_video_chroma_format
 +{
 +   PIPE_VIDEO_CHROMA_FORMAT_420,
 +   PIPE_VIDEO_CHROMA_FORMAT_422,
 +   PIPE_VIDEO_CHROMA_FORMAT_444
 +};
  
  #ifdef __cplusplus
  }