Merge branch 'master' into pipe-format-simplify
authorMichal Krol <michal@vmware.com>
Thu, 17 Dec 2009 21:37:15 +0000 (22:37 +0100)
committerMichal Krol <michal@vmware.com>
Thu, 17 Dec 2009 21:37:15 +0000 (22:37 +0100)
Conflicts:
src/gallium/auxiliary/draw/draw_pipe_aaline.c
src/gallium/auxiliary/draw/draw_pipe_pstipple.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/auxiliary/util/u_surface.c
src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c
src/gallium/drivers/cell/ppu/cell_texture.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/r300/r300_emit.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/softpipe/sp_texture.c
src/gallium/drivers/softpipe/sp_tile_cache.c
src/gallium/drivers/svga/svga_state_vs.c
src/gallium/include/pipe/p_format.h
src/gallium/state_trackers/dri/dri_drawable.c
src/gallium/state_trackers/egl/egl_surface.c
src/gallium/state_trackers/python/p_device.i
src/gallium/state_trackers/python/st_softpipe_winsys.c
src/gallium/state_trackers/vega/api_filters.c
src/gallium/state_trackers/vega/image.c
src/gallium/state_trackers/vega/mask.c
src/gallium/state_trackers/vega/paint.c
src/gallium/state_trackers/vega/renderer.c
src/gallium/state_trackers/vega/vg_tracker.c
src/gallium/state_trackers/xorg/xorg_crtc.c
src/gallium/state_trackers/xorg/xorg_dri2.c
src/gallium/state_trackers/xorg/xorg_exa.c
src/gallium/state_trackers/xorg/xorg_renderer.c
src/gallium/state_trackers/xorg/xorg_xv.c
src/gallium/state_trackers/xorg/xvmc/surface.c
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
src/gallium/winsys/drm/radeon/core/radeon_buffer.c
src/gallium/winsys/egl_xlib/sw_winsys.c
src/gallium/winsys/g3dvl/xlib/xsp_winsys.c
src/gallium/winsys/gdi/gdi_llvmpipe_winsys.c
src/gallium/winsys/gdi/gdi_softpipe_winsys.c
src/gallium/winsys/xlib/xlib_cell.c
src/gallium/winsys/xlib/xlib_llvmpipe.c
src/gallium/winsys/xlib/xlib_softpipe.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_texture.c

47 files changed:
1  2 
src/gallium/auxiliary/draw/draw_pipe_aaline.c
src/gallium/auxiliary/draw/draw_pipe_pstipple.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_format.h
src/gallium/auxiliary/util/u_format_table.py
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/auxiliary/util/u_pack_color.h
src/gallium/auxiliary/util/u_surface.c
src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c
src/gallium/drivers/cell/ppu/cell_texture.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/nv50/nv50_tex.c
src/gallium/drivers/r300/r300_emit.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/softpipe/sp_texture.c
src/gallium/drivers/softpipe/sp_tile_cache.c
src/gallium/drivers/svga/svga_screen_texture.c
src/gallium/include/pipe/p_format.h
src/gallium/state_trackers/dri/dri_drawable.c
src/gallium/state_trackers/egl/egl_surface.c
src/gallium/state_trackers/python/p_device.i
src/gallium/state_trackers/python/st_softpipe_winsys.c
src/gallium/state_trackers/vega/api_filters.c
src/gallium/state_trackers/vega/image.c
src/gallium/state_trackers/vega/mask.c
src/gallium/state_trackers/vega/paint.c
src/gallium/state_trackers/vega/renderer.c
src/gallium/state_trackers/vega/vg_tracker.c
src/gallium/state_trackers/wgl/stw_framebuffer.c
src/gallium/state_trackers/xorg/xorg_crtc.c
src/gallium/state_trackers/xorg/xorg_dri2.c
src/gallium/state_trackers/xorg/xorg_exa.c
src/gallium/state_trackers/xorg/xorg_renderer.c
src/gallium/state_trackers/xorg/xorg_xv.c
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
src/gallium/winsys/egl_xlib/sw_winsys.c
src/gallium/winsys/g3dvl/xlib/xsp_winsys.c
src/gallium/winsys/gdi/gdi_llvmpipe_winsys.c
src/gallium/winsys/gdi/gdi_softpipe_winsys.c
src/gallium/winsys/xlib/xlib_cell.c
src/gallium/winsys/xlib/xlib_llvmpipe.c
src/gallium/winsys/xlib/xlib_softpipe.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_format.c
src/mesa/state_tracker/st_texture.c

Simple merge
Simple merge
Simple merge
@@@ -629,34 -681,30 +682,30 @@@ void r300_emit_aos(struct r300_context
      BEGIN_CS(2 + packet_size + aos_count * 2);
      OUT_CS_PKT3(R300_PACKET3_3D_LOAD_VBPNTR, packet_size);
      OUT_CS(aos_count);
      for (i = 0; i < aos_count - 1; i += 2) {
-         int buf_num1 = velem[i].vertex_buffer_index;
-         int buf_num2 = velem[i+1].vertex_buffer_index;
-         assert(vbuf[buf_num1].stride % 4 == 0 && util_format_get_size(velem[i].src_format) % 4 == 0);
-         assert(vbuf[buf_num2].stride % 4 == 0 && util_format_get_size(velem[i+1].src_format) % 4 == 0);
-         OUT_CS((util_format_get_size(velem[i].src_format) >> 2) | (vbuf[buf_num1].stride << 6) |
-                (util_format_get_size(velem[i+1].src_format) << 14) | (vbuf[buf_num2].stride << 22));
-         OUT_CS(vbuf[buf_num1].buffer_offset + velem[i].src_offset +
-                offset * vbuf[buf_num1].stride);
-         OUT_CS(vbuf[buf_num2].buffer_offset + velem[i+1].src_offset +
-                offset * vbuf[buf_num2].stride);
+         vb1 = &vbuf[velem[i].vertex_buffer_index];
+         vb2 = &vbuf[velem[i+1].vertex_buffer_index];
 -        size1 = pf_get_blocksize(velem[i].src_format);
 -        size2 = pf_get_blocksize(velem[i+1].src_format);
++        size1 = util_format_get_size(velem[i].src_format);
++        size2 = util_format_get_size(velem[i+1].src_format);
+         OUT_CS(R300_VBPNTR_SIZE0(size1) | R300_VBPNTR_STRIDE0(vb1->stride) |
+                R300_VBPNTR_SIZE1(size2) | R300_VBPNTR_STRIDE1(vb2->stride));
+         OUT_CS(vb1->buffer_offset + velem[i].src_offset   + offset * vb1->stride);
+         OUT_CS(vb2->buffer_offset + velem[i+1].src_offset + offset * vb2->stride);
      }
      if (aos_count & 1) {
-         int buf_num = velem[i].vertex_buffer_index;
-         assert(vbuf[buf_num].stride % 4 == 0 && util_format_get_size(velem[i].src_format) % 4 == 0);
-         OUT_CS((util_format_get_size(velem[i].src_format) >> 2) | (vbuf[buf_num].stride << 6));
-         OUT_CS(vbuf[buf_num].buffer_offset + velem[i].src_offset +
-                offset * vbuf[buf_num].stride);
+         vb1 = &vbuf[velem[i].vertex_buffer_index];
 -        size1 = pf_get_blocksize(velem[i].src_format);
++        size1 = util_format_get_size(velem[i].src_format);
+         OUT_CS(R300_VBPNTR_SIZE0(size1) | R300_VBPNTR_STRIDE0(vb1->stride));
+         OUT_CS(vb1->buffer_offset + velem[i].src_offset + offset * vb1->stride);
      }
  
-     /* XXX bare CS reloc */
      for (i = 0; i < aos_count; i++) {
-         cs_winsys->write_cs_reloc(cs_winsys,
-                                   vbuf[velem[i].vertex_buffer_index].buffer,
-                                   RADEON_GEM_DOMAIN_GTT,
-                                   0,
-                                   0);
-         cs_count -= 2;
+         OUT_CS_RELOC_NO_OFFSET(vbuf[velem[i].vertex_buffer_index].buffer,
+                                RADEON_GEM_DOMAIN_GTT, 0, 0);
      }
      END_CS;
  }
@@@ -221,11 -524,76 +304,11 @@@ pf_get_stride(enum pipe_format format, 
  }
  
  static INLINE size_t
- pf_get_2d_size(const struct pipe_format_block *block, size_t stride, unsigned height)
+ pf_get_2d_size(enum pipe_format format, size_t stride, unsigned height)
  {
-    return pf_get_nblocksy(block, height)*stride;
+    return pf_get_nblocksy(format, height) * stride;
  }
  
 -static INLINE boolean 
 -pf_is_depth_or_stencil( enum pipe_format format )
 -{
 -   return (pf_get_component_bits( format, PIPE_FORMAT_COMP_Z ) +
 -           pf_get_component_bits( format, PIPE_FORMAT_COMP_S )) != 0;
 -}
 -
 -static INLINE boolean 
 -pf_is_depth_and_stencil( enum pipe_format format )
 -{
 -   return (pf_get_component_bits( format, PIPE_FORMAT_COMP_Z ) != 0 &&
 -           pf_get_component_bits( format, PIPE_FORMAT_COMP_S ) != 0);
 -}
 -
 -/** DEPRECATED: For backwards compatibility */
 -static INLINE boolean
 -pf_is_depth_stencil( enum pipe_format format )
 -{
 -   return pf_is_depth_or_stencil( format );
 -}
 -
 -static INLINE boolean 
 -pf_is_compressed( enum pipe_format format )
 -{
 -   return pf_layout(format) == PIPE_FORMAT_LAYOUT_DXT ? TRUE : FALSE;
 -}
 -
 -static INLINE boolean 
 -pf_is_ycbcr( enum pipe_format format )
 -{
 -   return pf_layout(format) == PIPE_FORMAT_LAYOUT_YCBCR ? TRUE : FALSE;
 -}
 -
 -static INLINE boolean 
 -pf_has_alpha( enum pipe_format format )
 -{
 -   switch (pf_layout(format)) {
 -   case PIPE_FORMAT_LAYOUT_RGBAZS:
 -   case PIPE_FORMAT_LAYOUT_MIXED:
 -      /* FIXME: pf_get_component_bits( PIPE_FORMAT_A8L8_UNORM, PIPE_FORMAT_COMP_A ) should not return 0 right? */
 -      if(format == PIPE_FORMAT_A8_UNORM || 
 -         format == PIPE_FORMAT_A8L8_UNORM || 
 -         format == PIPE_FORMAT_A8L8_SRGB)
 -         return TRUE;
 -      return pf_get_component_bits( format, PIPE_FORMAT_COMP_A ) ? TRUE : FALSE;
 -   case PIPE_FORMAT_LAYOUT_YCBCR:
 -      return FALSE; 
 -   case PIPE_FORMAT_LAYOUT_DXT:
 -      switch (format) {
 -      case PIPE_FORMAT_DXT1_RGBA:
 -      case PIPE_FORMAT_DXT3_RGBA:
 -      case PIPE_FORMAT_DXT5_RGBA:
 -      case PIPE_FORMAT_DXT1_SRGBA:
 -      case PIPE_FORMAT_DXT3_SRGBA:
 -      case PIPE_FORMAT_DXT5_SRGBA:
 -         return TRUE;
 -      default:
 -         return FALSE;
 -      }
 -   default:
 -      assert( 0 );
 -      return FALSE;
 -   }
 -}
 -
  enum pipe_video_chroma_format
  {
     PIPE_VIDEO_CHROMA_FORMAT_420,
@@@ -112,7 -112,6 +112,10 @@@ struct st_device 
        struct pipe_texture templat;
        memset(&templat, 0, sizeof(templat));
        templat.format = format;
++<<<<<<< HEAD
 +      util_format_get_block(templat.format, &templat.block);
++=======
++>>>>>>> master
        templat.width0 = width;
        templat.height0 = height;
        templat.depth0 = depth;
  #include "pipe/p_context.h"
  #include "pipe/p_inlines.h"
  #include "pipe/p_screen.h"
 +#include "util/u_format.h"
  #include "util/u_memory.h"
  #include "util/u_math.h"
+ #include "util/u_rect.h"
  
  static struct pipe_texture *
  create_texture(struct pipe_context *pipe, enum pipe_format format,
@@@ -148,10 -136,10 +137,10 @@@ gdi_llvmpipe_displaytarget_create(struc
     gdt->width = width;
     gdt->height = height;
  
 -   bpp = pf_get_blocksizebits(format);
 -   cpp = pf_get_blocksize(format);
 +   bpp = util_format_get_bits(format);
 +   cpp = util_format_get_size(format);
     
-    gdt->stride = round_up(width * cpp, alignment);
+    gdt->stride = align(width * cpp, alignment);
     gdt->size = gdt->stride * height;
     
     gdt->data = align_malloc(gdt->size, alignment);
Simple merge
Simple merge
Simple merge
Simple merge