Hi,<br><br>I have done some of the changes in the gallium interface we discussed in the thread called &quot;7 questions...&quot;.<br><br>There are 4 patches in total:<br><br>1) gallium: kill is_resource_referenced<br><br>The function is_resource_referenced is removed. Considering that only st/xorg used it, I don&#39;t think this can cause any regressions in hardware drivers. However softpipe and llvmpipe use it internally, so I have kept it there and added driver-specific flags instead:<br>

<br><div class="add">#define LP_UNREFERENCED         0</div><div class="add">#define LP_REFERENCED_FOR_READ  (1 &lt;&lt; 0)</div><div class="add">#define LP_REFERENCED_FOR_WRITE (1 &lt;&lt; 1)</div><br>The same for softpipe (SP_*).<br>

<br><br>2) gallium: cleanup fence_signalled and fence_finish<br><br>This removes the &quot;flags&quot; parameter from both the functions and changes the return type to boolean (TRUE=success).<br><br><br>3) gallium: remove the geom_flags param from is_format_supported<br>

<br>This was unused anyway.<br><br><br>4) gallium: remove flags from the flush function<br><br>The drivers have been changed so that they behave as if all of the flags were set (if used at all).
This is already implicit in most hardware drivers and required
for multiple contexts anyway (besides maybe SWAPBUFFERS and FRAME, the exact meaning of which is undefined).

Some state trackers were also abusing the PIPE_FLUSH_RENDER_CACHE flag
to decide whether flush_frontbuffer should be called.
New flag ST_FLUSH_FRONT has been added to st_api.h as a replacement, since the PIPE_FLUSH_* flags no longer exist.<br><br><br>The patches are here (they are too large to be posted on ML):<br>  <a href="http://cgit.freedesktop.org/~mareko/mesa/log/?h=gallium-cleanup">http://cgit.freedesktop.org/~mareko/mesa/log/?h=gallium-cleanup</a><br>

<br>Please review.<br><br> src/gallium/auxiliary/util/u_blit.c                |    7 +-<br> src/gallium/auxiliary/util/u_blitter.c             |    4 +-<br> src/gallium/auxiliary/util/u_caps.c                |    3 +-<br>

 src/gallium/auxiliary/util/u_gen_mipmap.c          |    2 +-<br> src/gallium/auxiliary/util/u_resource.c            |    8 -<br> src/gallium/auxiliary/util/u_surface.c             |    2 +-<br> src/gallium/auxiliary/util/u_transfer.c            |    7 -<br>

 src/gallium/auxiliary/util/u_transfer.h            |   12 --<br> src/gallium/auxiliary/util/u_vbuf_mgr.c            |   14 +-<br> src/gallium/docs/d3d11ddi.txt                      |    4 +-<br> src/gallium/drivers/cell/ppu/cell_context.c        |   14 --<br>

 src/gallium/drivers/cell/ppu/cell_fence.c          |    7 +-<br> src/gallium/drivers/cell/ppu/cell_fence.h          |    2 +-<br> src/gallium/drivers/cell/ppu/cell_flush.c          |    7 +-<br> src/gallium/drivers/cell/ppu/cell_screen.c         |    3 +-<br>

 src/gallium/drivers/failover/fo_context.c          |   17 +--<br> src/gallium/drivers/galahad/glhd_context.c         |   20 --<br> src/gallium/drivers/galahad/glhd_screen.c          |   18 +--<br> src/gallium/drivers/i915/i915_flush.c              |    2 +-<br>

 src/gallium/drivers/i915/i915_resource.c           |    1 -<br> src/gallium/drivers/i915/i915_resource_buffer.c    |    1 -<br> src/gallium/drivers/i915/i915_resource_texture.c   |    1 -<br> src/gallium/drivers/i915/i915_screen.c             |   15 +-<br>

 src/gallium/drivers/i965/brw_pipe_flush.c          |    1 -<br> src/gallium/drivers/i965/brw_resource_buffer.c     |   20 --<br> src/gallium/drivers/i965/brw_resource_texture.c    |   43 ----<br> src/gallium/drivers/i965/brw_screen.c              |   15 +-<br>

 src/gallium/drivers/identity/id_context.c          |   20 --<br> src/gallium/drivers/identity/id_screen.c           |   18 +--<br> src/gallium/drivers/llvmpipe/lp_context.c          |    3 +-<br> src/gallium/drivers/llvmpipe/lp_flush.c            |   47 ++---<br>

 src/gallium/drivers/llvmpipe/lp_flush.h            |    2 -<br> src/gallium/drivers/llvmpipe/lp_query.c            |    4 +-<br> src/gallium/drivers/llvmpipe/lp_screen.c           |   13 +-<br> src/gallium/drivers/llvmpipe/lp_setup.c            |   16 +-<br>

 src/gallium/drivers/llvmpipe/lp_setup.h            |    1 -<br> src/gallium/drivers/llvmpipe/lp_surface.c          |    2 -<br> src/gallium/drivers/llvmpipe/lp_texture.c          |    6 +-<br> src/gallium/drivers/llvmpipe/lp_texture.h          |   10 +<br>

 src/gallium/drivers/noop/noop_pipe.c               |   13 +-<br> src/gallium/drivers/nouveau/nouveau_buffer.c       |    1 -<br> src/gallium/drivers/nouveau/nouveau_screen.c       |   32 +---<br> src/gallium/drivers/nouveau/nouveau_screen.h       |    4 -<br>

 src/gallium/drivers/nv50/nv50_context.c            |   10 +-<br> src/gallium/drivers/nv50/nv50_miptree.c            |    1 -<br> src/gallium/drivers/nv50/nv50_resource.c           |   17 --<br> src/gallium/drivers/nv50/nv50_screen.c             |    2 +-<br>

 src/gallium/drivers/nvc0/nvc0_context.c            |   15 +-<br> src/gallium/drivers/nvc0/nvc0_miptree.c            |    1 -<br> src/gallium/drivers/nvc0/nvc0_resource.c           |   20 --<br> src/gallium/drivers/nvc0/nvc0_screen.c             |    2 +-<br>

 src/gallium/drivers/nvfx/nvfx_context.c            |    7 +-<br> src/gallium/drivers/nvfx/nvfx_miptree.c            |    6 +-<br> src/gallium/drivers/nvfx/nvfx_resource.c           |    9 -<br> src/gallium/drivers/nvfx/nvfx_screen.c             |    2 +-<br>

 src/gallium/drivers/nvfx/nvfx_state_emit.c         |    2 +-<br> src/gallium/drivers/r300/r300_blit.c               |    4 +-<br> src/gallium/drivers/r300/r300_flush.c              |    2 -<br> src/gallium/drivers/r300/r300_resource.c           |    8 -<br>

 src/gallium/drivers/r300/r300_screen.c             |   23 +--<br> src/gallium/drivers/r300/r300_screen_buffer.c      |   16 --<br> src/gallium/drivers/r300/r300_screen_buffer.h      |    3 -<br> src/gallium/drivers/r300/r300_texture.c            |    1 -<br>

 src/gallium/drivers/r300/r300_transfer.c           |    2 +-<br> src/gallium/drivers/r600/r600_buffer.c             |    9 -<br> src/gallium/drivers/r600/r600_pipe.c               |    5 +-<br> src/gallium/drivers/r600/r600_query.c              |    2 +-<br>

 src/gallium/drivers/r600/r600_resource.c           |    1 -<br> src/gallium/drivers/r600/r600_texture.c            |   17 +--<br> src/gallium/drivers/rbug/rbug_context.c            |   20 --<br> src/gallium/drivers/rbug/rbug_core.c               |    2 +-<br>

 src/gallium/drivers/rbug/rbug_screen.c             |   18 +--<br> src/gallium/drivers/softpipe/sp_context.c          |   26 ++--<br> src/gallium/drivers/softpipe/sp_context.h          |    9 +<br> src/gallium/drivers/softpipe/sp_fence.c            |   12 +-<br>

 src/gallium/drivers/softpipe/sp_flush.c            |   79 ++++----<br> src/gallium/drivers/softpipe/sp_flush.h            |    9 +-<br> src/gallium/drivers/softpipe/sp_screen.c           |    3 +-<br> src/gallium/drivers/svga/svga_context.c            |    2 +-<br>

 src/gallium/drivers/svga/svga_pipe_draw.c          |    2 +-<br> src/gallium/drivers/svga/svga_pipe_flush.c         |   33 ++--<br> src/gallium/drivers/svga/svga_resource.c           |    1 -<br> src/gallium/drivers/svga/svga_resource_buffer.c    |   37 ----<br>

 src/gallium/drivers/svga/svga_resource_texture.c   |   26 ---<br> src/gallium/drivers/svga/svga_screen.c             |   15 +-<br> src/gallium/drivers/trace/tr_context.c             |   30 +---<br> src/gallium/drivers/trace/tr_screen.c              |   24 +--<br>

 src/gallium/include/pipe/p_context.h               |   19 +--<br> src/gallium/include/pipe/p_defines.h               |   26 ---<br> src/gallium/include/pipe/p_screen.h                |   20 +--<br> src/gallium/include/state_tracker/st_api.h         |    5 +<br>

 .../state_trackers/d3d1x/dxgi/src/dxgi_native.cpp  |    2 +-<br> .../state_trackers/d3d1x/gd3d11/d3d11_context.h    |    2 +-<br> .../state_trackers/d3d1x/gd3d11/d3d11_screen.h     |   20 +-<br> .../state_trackers/dri/common/dri_context.c        |    4 +-<br>

 src/gallium/state_trackers/dri/common/dri_screen.c |   24 ++--<br> src/gallium/state_trackers/dri/sw/drisw.c          |    2 +-<br> src/gallium/state_trackers/egl/common/egl_g3d.c    |    2 +-<br> .../state_trackers/egl/common/egl_g3d_api.c        |   19 +--<br>

 .../state_trackers/egl/common/egl_g3d_sync.c       |    4 +-<br> .../state_trackers/egl/common/native_helper.c      |    4 +-<br> src/gallium/state_trackers/egl/drm/native_drm.c    |    2 +-<br> .../state_trackers/egl/fbdev/native_fbdev.c        |    2 +-<br>

 src/gallium/state_trackers/egl/gdi/native_gdi.c    |    2 +-<br> src/gallium/state_trackers/egl/x11/native_dri2.c   |    2 +-<br> src/gallium/state_trackers/glx/xlib/xm_api.c       |    6 +-<br> src/gallium/state_trackers/vega/api_context.c      |    6 +-<br>

 src/gallium/state_trackers/vega/image.c            |    2 +-<br> src/gallium/state_trackers/vega/renderer.c         |    8 +-<br> src/gallium/state_trackers/vega/vg_context.c       |    2 +-<br> src/gallium/state_trackers/vega/vg_manager.c       |    4 +-<br>

 src/gallium/state_trackers/wgl/stw_pixelformat.c   |    4 +-<br> src/gallium/state_trackers/xorg/xorg_dri2.c        |   10 +-<br> src/gallium/state_trackers/xorg/xorg_driver.c      |    6 +-<br> src/gallium/state_trackers/xorg/xorg_exa.c         |   20 +-<br>

 src/gallium/state_trackers/xorg/xorg_exa.h         |    2 +-<br> src/gallium/state_trackers/xorg/xorg_renderer.c    |    9 +-<br> src/gallium/state_trackers/xorg/xorg_xv.c          |   16 --<br> src/gallium/tests/graw/clear.c                     |    2 +-<br>

 src/gallium/tests/graw/fs-test.c                   |    2 +-<br> src/gallium/tests/graw/gs-test.c                   |    2 +-<br> src/gallium/tests/graw/quad-sample.c               |    2 +-<br> src/gallium/tests/graw/quad-tex.c                  |    2 +-<br>

 src/gallium/tests/graw/shader-leak.c               |    2 +-<br> src/gallium/tests/graw/tri-gs.c                    |    2 +-<br> src/gallium/tests/graw/tri-instanced.c             |    2 +-<br> src/gallium/tests/graw/tri.c                       |    2 +-<br>

 src/gallium/tests/graw/vs-test.c                   |    2 +-<br> src/gallium/tests/trivial/quad-tex.c               |    2 +-<br> src/gallium/tests/trivial/tri.c                    |    2 +-<br> src/gallium/winsys/r600/drm/r600_bo.c              |    2 +-<br>

 src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c  |    2 +-<br> src/mesa/state_tracker/st_cb_bitmap.c              |    6 +-<br> src/mesa/state_tracker/st_cb_drawpixels.c          |    2 +-<br> src/mesa/state_tracker/st_cb_fbo.c                 |    2 +-<br>

 src/mesa/state_tracker/st_cb_flush.c               |   10 +-<br> src/mesa/state_tracker/st_cb_flush.h               |    2 +-<br> src/mesa/state_tracker/st_cb_syncobj.c             |    6 +-<br> src/mesa/state_tracker/st_cb_texture.c             |   11 +-<br>

 src/mesa/state_tracker/st_extensions.c             |   44 ++--<br> src/mesa/state_tracker/st_format.c                 |  210 ++++++++------------<br> src/mesa/state_tracker/st_gen_mipmap.c             |    2 +-<br> src/mesa/state_tracker/st_manager.c                |    4 +-<br>

 src/mesa/state_tracker/st_texture.c                |    2 +-<br> 144 files changed, 497 insertions(+), 1065 deletions(-)<br><br>Best regards<br>Marek<br>