This changes the whole codebase to specify precisely which sampling capabilities they actually need.
It also removes PIPE_BIND_SAMPLER_VIEW since all users are moved to either more specific flags, or PIPE_BIND_SAMPLER_VIEW_ALL. This prevents accidentally specifying PIPE_SAMPLER_VIEW incorrectly. --- src/gallium/auxiliary/draw/draw_pipe_aaline.c | 2 +- src/gallium/auxiliary/draw/draw_pipe_pstipple.c | 2 +- src/gallium/auxiliary/util/u_blit.c | 4 ++-- src/gallium/auxiliary/util/u_blitter.c | 2 +- src/gallium/auxiliary/util/u_caps.c | 2 +- src/gallium/auxiliary/util/u_debug.c | 3 +-- src/gallium/drivers/nouveau/nouveau_screen.c | 2 +- src/gallium/drivers/nv50/nv50_screen.c | 2 +- src/gallium/drivers/nvfx/nvfx_miptree.c | 2 +- src/gallium/drivers/nvfx/nvfx_screen.c | 2 +- src/gallium/drivers/r300/r300_blit.c | 2 +- src/gallium/drivers/r300/r300_context.c | 2 +- src/gallium/drivers/r300/r300_screen.c | 4 ++-- src/gallium/drivers/r300/r300_transfer.c | 4 ++-- src/gallium/drivers/r600/r600_buffer.c | 2 +- src/gallium/drivers/r600/r600_screen.c | 4 ++-- src/gallium/drivers/svga/svga_pipe_blit.c | 2 +- src/gallium/drivers/svga/svga_resource_texture.c | 2 +- src/gallium/drivers/svga/svga_screen.c | 2 +- src/gallium/include/pipe/p_defines.h | 3 --- .../state_trackers/dri/common/dri_drawable.c | 2 +- src/gallium/state_trackers/dri/drm/dri2.c | 2 +- src/gallium/state_trackers/egl/gdi/native_gdi.c | 2 +- src/gallium/state_trackers/egl/kms/native_kms.c | 2 +- src/gallium/state_trackers/egl/x11/native_ximage.c | 2 +- src/gallium/state_trackers/python/st_device.c | 2 +- src/gallium/state_trackers/vega/api_filters.c | 2 +- src/gallium/state_trackers/vega/image.c | 4 ++-- src/gallium/state_trackers/vega/mask.c | 2 +- src/gallium/state_trackers/vega/paint.c | 2 +- src/gallium/state_trackers/vega/renderer.c | 6 +++--- src/gallium/state_trackers/vega/vg_manager.c | 2 +- src/gallium/state_trackers/xorg/xorg_exa.c | 6 +++--- src/gallium/state_trackers/xorg/xorg_renderer.c | 4 ++-- src/gallium/state_trackers/xorg/xorg_xv.c | 2 +- src/gallium/tests/graw/fs-test.c | 2 +- src/gallium/tests/graw/gs-test.c | 2 +- src/gallium/tests/graw/quad-tex.c | 2 +- src/gallium/tests/graw/vs-test.c | 2 +- src/gallium/tests/python/tests/surface_copy.py | 5 +++-- src/gallium/tests/python/tests/texture_blit.py | 6 +++--- src/gallium/tests/python/tests/texture_render.py | 4 ++-- src/gallium/tests/python/tests/texture_transfer.py | 2 +- src/gallium/winsys/radeon/drm/radeon_r300.c | 2 +- src/mesa/state_tracker/st_atom_pixeltransfer.c | 4 ++-- src/mesa/state_tracker/st_cb_bitmap.c | 10 +++++----- src/mesa/state_tracker/st_cb_drawpixels.c | 6 +++--- src/mesa/state_tracker/st_cb_eglimage.c | 2 +- src/mesa/state_tracker/st_cb_texture.c | 10 +++++----- src/mesa/state_tracker/st_extensions.c | 14 +++++++------- src/mesa/state_tracker/st_format.c | 12 ++++++------ src/mesa/state_tracker/st_texture.c | 2 +- 52 files changed, 88 insertions(+), 91 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_pipe_aaline.c b/src/gallium/auxiliary/draw/draw_pipe_aaline.c index c0135f5..5173d33 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_aaline.c +++ b/src/gallium/auxiliary/draw/draw_pipe_aaline.c @@ -407,7 +407,7 @@ aaline_create_texture(struct aaline_stage *aaline) texTemp.width0 = 1 << MAX_TEXTURE_LEVEL; texTemp.height0 = 1 << MAX_TEXTURE_LEVEL; texTemp.depth0 = 1; - texTemp.bind = PIPE_BIND_SAMPLER_VIEW; + texTemp.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; aaline->texture = screen->resource_create(screen, &texTemp); if (!aaline->texture) diff --git a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c index ed9a53e..11b436e 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c +++ b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c @@ -440,7 +440,7 @@ pstip_create_texture(struct pstip_stage *pstip) texTemp.width0 = 32; texTemp.height0 = 32; texTemp.depth0 = 1; - texTemp.bind = PIPE_BIND_SAMPLER_VIEW; + texTemp.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; pstip->texture = screen->resource_create(screen, &texTemp); if (pstip->texture == NULL) diff --git a/src/gallium/auxiliary/util/u_blit.c b/src/gallium/auxiliary/util/u_blit.c index 97fa99e..a86806c 100644 --- a/src/gallium/auxiliary/util/u_blit.c +++ b/src/gallium/auxiliary/util/u_blit.c @@ -378,7 +378,7 @@ util_blit_pixels_writemask(struct blit_state *ctx, texTemp.width0 = srcW; texTemp.height0 = srcH; texTemp.depth0 = 1; - texTemp.bind = PIPE_BIND_SAMPLER_VIEW; + texTemp.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; tex = screen->resource_create(screen, &texTemp); if (!tex) @@ -424,7 +424,7 @@ util_blit_pixels_writemask(struct blit_state *ctx, assert(screen->is_format_supported(screen, sampler_view->format, PIPE_TEXTURE_2D, sampler_view->texture->nr_samples, - PIPE_BIND_SAMPLER_VIEW, 0)); + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)); assert(screen->is_format_supported(screen, dst->format, PIPE_TEXTURE_2D, dst->texture->nr_samples, PIPE_BIND_RENDER_TARGET, 0)); diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index b5b86b7..87e4c7e 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -746,7 +746,7 @@ void util_blitter_copy_region(struct blitter_context *blitter, !screen->is_format_supported(screen, dst->format, dst->target, dst->nr_samples, bind, 0) || !screen->is_format_supported(screen, src->format, src->target, - src->nr_samples, PIPE_BIND_SAMPLER_VIEW, 0)) { + src->nr_samples, PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)) { util_resource_copy_region(pipe, dst, subdst, dstx, dsty, dstz, src, subsrc, srcx, srcy, srcz, width, height); return; diff --git a/src/gallium/auxiliary/util/u_caps.c b/src/gallium/auxiliary/util/u_caps.c index 94d5bd3..0b6b4e4 100644 --- a/src/gallium/auxiliary/util/u_caps.c +++ b/src/gallium/auxiliary/util/u_caps.c @@ -69,7 +69,7 @@ util_check_caps_out(struct pipe_screen *screen, const unsigned *list, int *out) list[i++], PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, + PIPE_BIND_SAMPLER_VIEW_ANY, 0)) { *out = i - 2; return FALSE; diff --git a/src/gallium/auxiliary/util/u_debug.c b/src/gallium/auxiliary/util/u_debug.c index 504e6d2..3ebf8ec 100644 --- a/src/gallium/auxiliary/util/u_debug.c +++ b/src/gallium/auxiliary/util/u_debug.c @@ -508,8 +508,7 @@ void debug_dump_texture(struct pipe_context *pipe, screen = texture->screen; /* XXX for now, just dump image for face=0, level=0 */ - surface = screen->get_tex_surface(screen, texture, 0, 0, 0, - PIPE_BIND_SAMPLER_VIEW); + surface = screen->get_tex_surface(screen, texture, 0, 0, 0, 0); if (surface) { debug_dump_surface(pipe, prefix, surface); screen->tex_surface_destroy(surface); diff --git a/src/gallium/drivers/nouveau/nouveau_screen.c b/src/gallium/drivers/nouveau/nouveau_screen.c index 513e5e0..e20c091 100644 --- a/src/gallium/drivers/nouveau/nouveau_screen.c +++ b/src/gallium/drivers/nouveau/nouveau_screen.c @@ -55,7 +55,7 @@ nouveau_screen_bo_new(struct pipe_screen *pscreen, unsigned alignment, PIPE_BIND_DEPTH_STENCIL | PIPE_BIND_SCANOUT | PIPE_BIND_DISPLAY_TARGET | - PIPE_BIND_SAMPLER_VIEW)) + PIPE_BIND_SAMPLER_VIEW_ANY)) { /* TODO: this may be incorrect or suboptimal */ if (!(bind & PIPE_BIND_SCANOUT)) diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c index ca4b01b..abe2c66 100644 --- a/src/gallium/drivers/nv50/nv50_screen.c +++ b/src/gallium/drivers/nv50/nv50_screen.c @@ -65,7 +65,7 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen, break; } } else { - if (tex_usage & PIPE_BIND_SAMPLER_VIEW) { + if (tex_usage & PIPE_BIND_SAMPLER_VIEW_ANY) { switch (format) { case PIPE_FORMAT_DXT1_RGB: case PIPE_FORMAT_DXT1_RGBA: diff --git a/src/gallium/drivers/nvfx/nvfx_miptree.c b/src/gallium/drivers/nvfx/nvfx_miptree.c index b5639bb..9ee3a58 100644 --- a/src/gallium/drivers/nvfx/nvfx_miptree.c +++ b/src/gallium/drivers/nvfx/nvfx_miptree.c @@ -22,7 +22,7 @@ nvfx_miptree_layout(struct nvfx_miptree *mt) uint width = pt->width0; uint offset = 0; int nr_faces, l, f; - uint wide_pitch = pt->bind & (PIPE_BIND_SAMPLER_VIEW | + uint wide_pitch = pt->bind & (PIPE_BIND_SAMPLER_VIEW_ANY | PIPE_BIND_DEPTH_STENCIL | PIPE_BIND_RENDER_TARGET | PIPE_BIND_DISPLAY_TARGET | diff --git a/src/gallium/drivers/nvfx/nvfx_screen.c b/src/gallium/drivers/nvfx/nvfx_screen.c index f2525cc..4a55c55 100644 --- a/src/gallium/drivers/nvfx/nvfx_screen.c +++ b/src/gallium/drivers/nvfx/nvfx_screen.c @@ -199,7 +199,7 @@ nvfx_screen_surface_format_supported(struct pipe_screen *pscreen, } } else { switch (format) { - if (tex_usage & PIPE_BIND_SAMPLER_VIEW) { + if (tex_usage & PIPE_BIND_SAMPLER_VIEW_ANY) { switch (format) { case PIPE_FORMAT_DXT1_RGB: case PIPE_FORMAT_DXT1_RGBA: diff --git a/src/gallium/drivers/r300/r300_blit.c b/src/gallium/drivers/r300/r300_blit.c index 47ffc0c..5e8d05f 100644 --- a/src/gallium/drivers/r300/r300_blit.c +++ b/src/gallium/drivers/r300/r300_blit.c @@ -364,7 +364,7 @@ static void r300_resource_copy_region(struct pipe_context *pipe, old_format, src->target, src->nr_samples, PIPE_BIND_RENDER_TARGET | - PIPE_BIND_SAMPLER_VIEW, 0) && + PIPE_BIND_SAMPLER_VIEW_ANY, 0) && util_format_is_plain(old_format)) { switch (util_format_get_blocksize(old_format)) { case 1: diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c index a83ad89..1eb22a2 100644 --- a/src/gallium/drivers/r300/r300_context.c +++ b/src/gallium/drivers/r300/r300_context.c @@ -489,7 +489,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen, rtempl.target = PIPE_TEXTURE_2D; rtempl.format = PIPE_FORMAT_I8_UNORM; - rtempl.bind = PIPE_BIND_SAMPLER_VIEW; + rtempl.bind = PIPE_BIND_SAMPLER_VIEW_ANY; rtempl.width0 = 1; rtempl.height0 = 1; rtempl.depth0 = 1; diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 1e4edcd..d9f8fac 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -291,13 +291,13 @@ static boolean r300_is_format_supported(struct pipe_screen* screen, } /* Check sampler format support. */ - if ((usage & PIPE_BIND_SAMPLER_VIEW) && + if ((usage & PIPE_BIND_SAMPLER_VIEW_ANY) && /* ATI1N is r5xx-only. */ (is_r500 || !is_ati1n) && /* ATI2N is supported on r4xx-r5xx. */ (is_r400 || is_r500 || !is_ati2n) && r300_is_sampler_format_supported(format)) { - retval |= PIPE_BIND_SAMPLER_VIEW; + retval |= (usage & PIPE_BIND_SAMPLER_VIEW_ALL); } /* Check colorbuffer format support. */ diff --git a/src/gallium/drivers/r300/r300_transfer.c b/src/gallium/drivers/r300/r300_transfer.c index e9333b3..5ea2bef 100644 --- a/src/gallium/drivers/r300/r300_transfer.c +++ b/src/gallium/drivers/r300/r300_transfer.c @@ -110,7 +110,7 @@ r300_texture_get_transfer(struct pipe_context *ctx, blittable = ctx->screen->is_format_supported( ctx->screen, texture->format, texture->target, 0, - PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_RENDER_TARGET, 0); + PIPE_BIND_SAMPLER_VIEW_ANY | PIPE_BIND_RENDER_TARGET, 0); trans = CALLOC_STRUCT(r300_transfer); if (trans) { @@ -144,7 +144,7 @@ r300_texture_get_transfer(struct pipe_context *ctx, /* For texture writing, the temporary texture is used as a sampler * when blitting into a tiled texture. */ if (usage & PIPE_TRANSFER_WRITE) { - base.bind |= PIPE_BIND_SAMPLER_VIEW; + base.bind |= PIPE_BIND_SAMPLER_VIEW_ANY; } /* Create the temporary texture. */ diff --git a/src/gallium/drivers/r600/r600_buffer.c b/src/gallium/drivers/r600/r600_buffer.c index 7829a47..cd6089a 100644 --- a/src/gallium/drivers/r600/r600_buffer.c +++ b/src/gallium/drivers/r600/r600_buffer.c @@ -46,7 +46,7 @@ u32 r600_domain_from_usage(unsigned usage) if (usage & PIPE_BIND_DEPTH_STENCIL) { domain |= RADEON_GEM_DOMAIN_VRAM; } - if (usage & PIPE_BIND_SAMPLER_VIEW) { + if (usage & PIPE_BIND_SAMPLER_VIEW_ANY) { domain |= RADEON_GEM_DOMAIN_VRAM; } /* also need BIND_BLIT_SOURCE/DESTINATION ? */ diff --git a/src/gallium/drivers/r600/r600_screen.c b/src/gallium/drivers/r600/r600_screen.c index cdaca9e..da7e330 100644 --- a/src/gallium/drivers/r600/r600_screen.c +++ b/src/gallium/drivers/r600/r600_screen.c @@ -188,9 +188,9 @@ static boolean r600_is_format_supported(struct pipe_screen* screen, if (sample_count > 1) return FALSE; - if ((usage & PIPE_BIND_SAMPLER_VIEW) && + if ((usage & PIPE_BIND_SAMPLER_VIEW_ANY) && r600_is_sampler_format_supported(format)) { - retval |= PIPE_BIND_SAMPLER_VIEW; + retval |= (usage & PIPE_BIND_SAMPLER_VIEW_ALL); } if ((usage & (PIPE_BIND_RENDER_TARGET | diff --git a/src/gallium/drivers/svga/svga_pipe_blit.c b/src/gallium/drivers/svga/svga_pipe_blit.c index ca036a6..be6b16f 100644 --- a/src/gallium/drivers/svga/svga_pipe_blit.c +++ b/src/gallium/drivers/svga/svga_pipe_blit.c @@ -52,7 +52,7 @@ static void svga_surface_copy(struct pipe_context *pipe, srcsurf = screen->get_tex_surface(screen, src_tex, subsrc.face, subsrc.level, srcz, - PIPE_BIND_SAMPLER_VIEW); + PIPE_BIND_SAMPLER_VIEW_ANY); dstsurf = screen->get_tex_surface(screen, dst_tex, subdst.face, subdst.level, dstz, diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c index ff83c75..2d2e7f6 100644 --- a/src/gallium/drivers/svga/svga_resource_texture.c +++ b/src/gallium/drivers/svga/svga_resource_texture.c @@ -518,7 +518,7 @@ svga_texture_create(struct pipe_screen *screen, tex->key.cachable = 1; - if (template->bind & PIPE_BIND_SAMPLER_VIEW) + if (template->bind & PIPE_BIND_SAMPLER_VIEW_ANY) tex->key.flags |= SVGA3D_SURFACE_HINT_TEXTURE; if (template->bind & PIPE_BIND_DISPLAY_TARGET) { diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c index 077ff9a..68579ac 100644 --- a/src/gallium/drivers/svga/svga_screen.c +++ b/src/gallium/drivers/svga/svga_screen.c @@ -344,7 +344,7 @@ svga_is_format_supported( struct pipe_screen *screen, mask.offscreenRenderTarget = 1; if (tex_usage & PIPE_BIND_DEPTH_STENCIL) mask.zStencil = 1; - if (tex_usage & PIPE_BIND_SAMPLER_VIEW) + if (tex_usage & PIPE_BIND_SAMPLER_VIEW_ANY) mask.texture = 1; if ((result.u & mask.value) == mask.value) diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 1acb54e..a298731 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -316,9 +316,6 @@ enum pipe_transfer_usage { | PIPE_BIND_SAMPLER_VIEW_UNNORMALIZED_NON_CLAMP \ | PIPE_BIND_SAMPLER_VIEW_NORMALIZED) -/* XXX: this will be removed in the next patch */ -#define PIPE_BIND_SAMPLER_VIEW PIPE_BIND_SAMPLER_VIEW_ALL - #define PIPE_BIND_VERTEX_BUFFER (1 << 6) /* set_vertex_buffers */ #define PIPE_BIND_INDEX_BUFFER (1 << 7) /* draw_elements */ #define PIPE_BIND_CONSTANT_BUFFER (1 << 8) /* set_constant_buffer */ diff --git a/src/gallium/state_trackers/dri/common/dri_drawable.c b/src/gallium/state_trackers/dri/common/dri_drawable.c index 1bdfdcc..2fe561f 100644 --- a/src/gallium/state_trackers/dri/common/dri_drawable.c +++ b/src/gallium/state_trackers/dri/common/dri_drawable.c @@ -250,7 +250,7 @@ dri_drawable_get_format(struct dri_drawable *drawable, case ST_ATTACHMENT_FRONT_RIGHT: case ST_ATTACHMENT_BACK_RIGHT: *format = drawable->stvis.color_format; - *bind = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW; + *bind = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW_ANY; break; case ST_ATTACHMENT_DEPTH_STENCIL: *format = drawable->stvis.depth_stencil_format; diff --git a/src/gallium/state_trackers/dri/drm/dri2.c b/src/gallium/state_trackers/dri/drm/dri2.c index 47005c1..63914bf 100644 --- a/src/gallium/state_trackers/dri/drm/dri2.c +++ b/src/gallium/state_trackers/dri/drm/dri2.c @@ -316,7 +316,7 @@ dri2_create_image_from_name(__DRIcontext *context, unsigned tex_usage; enum pipe_format pf; - tex_usage = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW; + tex_usage = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW_ANY; switch (format) { case __DRI_IMAGE_FORMAT_RGB565: diff --git a/src/gallium/state_trackers/egl/gdi/native_gdi.c b/src/gallium/state_trackers/egl/gdi/native_gdi.c index 91701e5..a6ff495 100644 --- a/src/gallium/state_trackers/egl/gdi/native_gdi.c +++ b/src/gallium/state_trackers/egl/gdi/native_gdi.c @@ -219,7 +219,7 @@ gdi_display_create_window_surface(struct native_display *ndpy, gsurf->rsurf = resource_surface_create(gdpy->base.screen, gsurf->color_format, PIPE_BIND_RENDER_TARGET | - PIPE_BIND_SAMPLER_VIEW | + PIPE_BIND_SAMPLER_VIEW_ANY | PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT); if (!gsurf->rsurf) { diff --git a/src/gallium/state_trackers/egl/kms/native_kms.c b/src/gallium/state_trackers/egl/kms/native_kms.c index d4e8fbc..a583489 100644 --- a/src/gallium/state_trackers/egl/kms/native_kms.c +++ b/src/gallium/state_trackers/egl/kms/native_kms.c @@ -220,7 +220,7 @@ kms_display_create_surface(struct native_display *ndpy, ksurf->rsurf = resource_surface_create(kdpy->base.screen, ksurf->color_format, PIPE_BIND_RENDER_TARGET | - PIPE_BIND_SAMPLER_VIEW | + PIPE_BIND_SAMPLER_VIEW_ANY | PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT); if (!ksurf->rsurf) { diff --git a/src/gallium/state_trackers/egl/x11/native_ximage.c b/src/gallium/state_trackers/egl/x11/native_ximage.c index 4b32f6e..40a5527 100644 --- a/src/gallium/state_trackers/egl/x11/native_ximage.c +++ b/src/gallium/state_trackers/egl/x11/native_ximage.c @@ -239,7 +239,7 @@ ximage_display_create_surface(struct native_display *ndpy, xsurf->rsurf = resource_surface_create(xdpy->base.screen, xsurf->color_format, PIPE_BIND_RENDER_TARGET | - PIPE_BIND_SAMPLER_VIEW | + PIPE_BIND_SAMPLER_VIEW_ANY | PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT); if (!xsurf->rsurf) { diff --git a/src/gallium/state_trackers/python/st_device.c b/src/gallium/state_trackers/python/st_device.c index dce24bc..de7255b 100644 --- a/src/gallium/state_trackers/python/st_device.c +++ b/src/gallium/state_trackers/python/st_device.c @@ -242,7 +242,7 @@ st_context_create(struct st_device *st_dev) templat.height0 = 1; templat.depth0 = 1; templat.last_level = 0; - templat.bind = PIPE_BIND_SAMPLER_VIEW; + templat.bind = PIPE_BIND_SAMPLER_VIEW_ANY; st_ctx->default_texture = screen->resource_create( screen, &templat ); if(st_ctx->default_texture) { diff --git a/src/gallium/state_trackers/vega/api_filters.c b/src/gallium/state_trackers/vega/api_filters.c index 8ace985..cafb452 100644 --- a/src/gallium/state_trackers/vega/api_filters.c +++ b/src/gallium/state_trackers/vega/api_filters.c @@ -75,7 +75,7 @@ static INLINE struct pipe_resource *create_texture_1d(struct vg_context *ctx, templ.width0 = color_data_len; templ.height0 = 1; templ.depth0 = 1; - templ.bind = PIPE_BIND_SAMPLER_VIEW; + templ.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; tex = screen->resource_create(screen, &templ); diff --git a/src/gallium/state_trackers/vega/image.c b/src/gallium/state_trackers/vega/image.c index c12dc71..7e8ff21 100644 --- a/src/gallium/state_trackers/vega/image.c +++ b/src/gallium/state_trackers/vega/image.c @@ -270,7 +270,7 @@ struct vg_image * image_create(VGImageFormat format, image->sampler.normalized_coords = 1; assert(screen->is_format_supported(screen, pformat, PIPE_TEXTURE_2D, - 0, PIPE_BIND_SAMPLER_VIEW, 0)); + 0, PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)); memset(&pt, 0, sizeof(pt)); pt.target = PIPE_TEXTURE_2D; @@ -279,7 +279,7 @@ struct vg_image * image_create(VGImageFormat format, pt.width0 = width; pt.height0 = height; pt.depth0 = 1; - pt.bind = PIPE_BIND_SAMPLER_VIEW; + pt.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; newtex = screen->resource_create(screen, &pt); diff --git a/src/gallium/state_trackers/vega/mask.c b/src/gallium/state_trackers/vega/mask.c index ef28ebd..e2efb69 100644 --- a/src/gallium/state_trackers/vega/mask.c +++ b/src/gallium/state_trackers/vega/mask.c @@ -496,7 +496,7 @@ struct vg_mask_layer * mask_layer_create(VGint width, VGint height) pt.width0 = width; pt.height0 = height; pt.depth0 = 1; - pt.bind = PIPE_BIND_SAMPLER_VIEW; + pt.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; pt.compressed = 0; texture = screen->resource_create(screen, &pt); diff --git a/src/gallium/state_trackers/vega/paint.c b/src/gallium/state_trackers/vega/paint.c index 2c0eb6b..54bfa07 100644 --- a/src/gallium/state_trackers/vega/paint.c +++ b/src/gallium/state_trackers/vega/paint.c @@ -157,7 +157,7 @@ static INLINE struct pipe_resource *create_gradient_texture(struct vg_paint *p) templ.width0 = 1024; templ.height0 = 1; templ.depth0 = 1; - templ.bind = PIPE_BIND_SAMPLER_VIEW; + templ.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; tex = screen->resource_create(screen, &templ); diff --git a/src/gallium/state_trackers/vega/renderer.c b/src/gallium/state_trackers/vega/renderer.c index 8c02304..0aef140 100644 --- a/src/gallium/state_trackers/vega/renderer.c +++ b/src/gallium/state_trackers/vega/renderer.c @@ -442,9 +442,9 @@ void renderer_copy_surface(struct renderer *ctx, } assert(screen->is_format_supported(screen, src->format, PIPE_TEXTURE_2D, - 0, PIPE_BIND_SAMPLER_VIEW, 0)); + 0, PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)); assert(screen->is_format_supported(screen, dst->format, PIPE_TEXTURE_2D, - 0, PIPE_BIND_SAMPLER_VIEW, 0)); + 0, PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)); assert(screen->is_format_supported(screen, dst->format, PIPE_TEXTURE_2D, 0, PIPE_BIND_RENDER_TARGET, 0)); @@ -461,7 +461,7 @@ void renderer_copy_surface(struct renderer *ctx, texTemp.width0 = srcW; texTemp.height0 = srcH; texTemp.depth0 = 1; - texTemp.bind = PIPE_BIND_SAMPLER_VIEW; + texTemp.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; tex = screen->resource_create(screen, &texTemp); if (!tex) diff --git a/src/gallium/state_trackers/vega/vg_manager.c b/src/gallium/state_trackers/vega/vg_manager.c index c2aa98b..2a0c997 100644 --- a/src/gallium/state_trackers/vega/vg_manager.c +++ b/src/gallium/state_trackers/vega/vg_manager.c @@ -69,7 +69,7 @@ create_texture(struct pipe_context *pipe, enum pipe_format format, } else { templ.bind = (PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_RENDER_TARGET | - PIPE_BIND_SAMPLER_VIEW); + PIPE_BIND_SAMPLER_VIEW_NORMALIZED); } return pipe->screen->resource_create(pipe->screen, &templ); diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 6b2c80f..864a571 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -433,7 +433,7 @@ ExaPrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, if (!exa->scrn->is_format_supported(exa->scrn, src_priv->tex->format, src_priv->tex->target, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)) XORG_FALLBACK("pSrc format %s", util_format_name(src_priv->tex->format)); exa->copy.src = src_priv; @@ -645,7 +645,7 @@ ExaPrepareComposite(int op, PicturePtr pSrcPicture, if (!exa->scrn->is_format_supported(exa->scrn, priv->tex->format, priv->tex->target, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)) XORG_FALLBACK("pSrc format: %s", util_format_name(priv->tex->format)); if (!picture_check_formats(priv, pSrcPicture)) @@ -662,7 +662,7 @@ ExaPrepareComposite(int op, PicturePtr pSrcPicture, if (!exa->scrn->is_format_supported(exa->scrn, priv->tex->format, priv->tex->target, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)) XORG_FALLBACK("pMask format: %s", util_format_name(priv->tex->format)); if (!picture_check_formats(priv, pMaskPicture)) diff --git a/src/gallium/state_trackers/xorg/xorg_renderer.c b/src/gallium/state_trackers/xorg/xorg_renderer.c index 92f1cc5..8d97508 100644 --- a/src/gallium/state_trackers/xorg/xorg_renderer.c +++ b/src/gallium/state_trackers/xorg/xorg_renderer.c @@ -524,7 +524,7 @@ renderer_clone_texture(struct xorg_renderer *r, /* the coming in texture should already have that invariance */ debug_assert(screen->is_format_supported(screen, src->format, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0)); + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)); format = src->format; @@ -535,7 +535,7 @@ renderer_clone_texture(struct xorg_renderer *r, templ.width0 = src->width0; templ.height0 = src->height0; templ.depth0 = 1; - templ.bind = PIPE_BIND_SAMPLER_VIEW; + templ.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; pt = screen->resource_create(screen, &templ); diff --git a/src/gallium/state_trackers/xorg/xorg_xv.c b/src/gallium/state_trackers/xorg/xorg_xv.c index f98bd93..f30ea96 100644 --- a/src/gallium/state_trackers/xorg/xorg_xv.c +++ b/src/gallium/state_trackers/xorg/xorg_xv.c @@ -171,7 +171,7 @@ create_component_texture(struct pipe_context *pipe, templ.width0 = width; templ.height0 = height; templ.depth0 = 1; - templ.bind = PIPE_BIND_SAMPLER_VIEW; + templ.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; tex = screen->resource_create(screen, &templ); diff --git a/src/gallium/tests/graw/fs-test.c b/src/gallium/tests/graw/fs-test.c index 53fbb74..c6cc154 100644 --- a/src/gallium/tests/graw/fs-test.c +++ b/src/gallium/tests/graw/fs-test.c @@ -353,7 +353,7 @@ static void init_tex( void ) templat.depth0 = 1; templat.last_level = 0; templat.nr_samples = 1; - templat.bind = PIPE_BIND_SAMPLER_VIEW; + templat.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; samptex = screen->resource_create(screen, diff --git a/src/gallium/tests/graw/gs-test.c b/src/gallium/tests/graw/gs-test.c index 6271490..8b7f386 100644 --- a/src/gallium/tests/graw/gs-test.c +++ b/src/gallium/tests/graw/gs-test.c @@ -417,7 +417,7 @@ static void init_tex( void ) templat.depth0 = 1; templat.last_level = 0; templat.nr_samples = 1; - templat.bind = PIPE_BIND_SAMPLER_VIEW; + templat.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; samptex = screen->resource_create(screen, diff --git a/src/gallium/tests/graw/quad-tex.c b/src/gallium/tests/graw/quad-tex.c index c50ef12..05f8249 100644 --- a/src/gallium/tests/graw/quad-tex.c +++ b/src/gallium/tests/graw/quad-tex.c @@ -224,7 +224,7 @@ static void init_tex( void ) templat.depth0 = 1; templat.last_level = 0; templat.nr_samples = 1; - templat.bind = PIPE_BIND_SAMPLER_VIEW; + templat.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; samptex = screen->resource_create(screen, diff --git a/src/gallium/tests/graw/vs-test.c b/src/gallium/tests/graw/vs-test.c index e1cd814..fe6314f 100644 --- a/src/gallium/tests/graw/vs-test.c +++ b/src/gallium/tests/graw/vs-test.c @@ -304,7 +304,7 @@ static void init_tex( void ) templat.depth0 = 1; templat.last_level = 0; templat.nr_samples = 1; - templat.bind = PIPE_BIND_SAMPLER_VIEW; + templat.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; samptex = screen->resource_create(screen, diff --git a/src/gallium/tests/python/tests/surface_copy.py b/src/gallium/tests/python/tests/surface_copy.py index 7a6ede3..e564f8f 100755 --- a/src/gallium/tests/python/tests/surface_copy.py +++ b/src/gallium/tests/python/tests/surface_copy.py @@ -71,7 +71,8 @@ class TextureTest(TestCase): level = self.level zslice = self.zslice - bind = PIPE_BIND_SAMPLER_VIEW + # XXX: we aren't creating sampler views... + bind = PIPE_BIND_SAMPLER_VIEW_ANY geom_flags = 0 sample_count = 0 if not dev.is_format_supported(format, target, sample_count, bind, geom_flags): @@ -100,7 +101,7 @@ class TextureTest(TestCase): height = dst_surface.height, depth = 1, last_level = 0, - bind = PIPE_BIND_SAMPLER_VIEW, + bind = bind, ) src_surface = src_texture.get_surface() diff --git a/src/gallium/tests/python/tests/texture_blit.py b/src/gallium/tests/python/tests/texture_blit.py index 58706da..41c7d5b 100755 --- a/src/gallium/tests/python/tests/texture_blit.py +++ b/src/gallium/tests/python/tests/texture_blit.py @@ -131,7 +131,7 @@ class TextureColorSampleTest(TestCase): minz = 0.0 maxz = 1.0 - bind = PIPE_BIND_SAMPLER_VIEW + bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED geom_flags = 0 sample_count = 0 if width != height: @@ -182,7 +182,7 @@ class TextureColorSampleTest(TestCase): height = height, depth = depth, last_level = last_level, - bind = bind, + bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED, ) expected_rgba = FloatArray(height*width*4) @@ -350,7 +350,7 @@ class TextureDepthSampleTest(TestCase): minz = 0.0 maxz = 1.0 - bind = PIPE_BIND_SAMPLER_VIEW + bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED geom_flags = 0 sample_count = 0 if width != height: diff --git a/src/gallium/tests/python/tests/texture_render.py b/src/gallium/tests/python/tests/texture_render.py index 23f3d2a..d9a8539 100755 --- a/src/gallium/tests/python/tests/texture_render.py +++ b/src/gallium/tests/python/tests/texture_render.py @@ -89,7 +89,7 @@ class TextureTest(TestCase): height = dst_surface.height, depth = 1, last_level = 0, - bind = PIPE_BIND_SAMPLER_VIEW, + bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED, ) ref_surface = ref_texture.get_surface() @@ -101,7 +101,7 @@ class TextureTest(TestCase): height = dst_surface.height, depth = 1, last_level = 0, - bind = PIPE_BIND_SAMPLER_VIEW, + bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED, ) src_surface = src_texture.get_surface() diff --git a/src/gallium/tests/python/tests/texture_transfer.py b/src/gallium/tests/python/tests/texture_transfer.py index 65c919b..d2dfc96 100755 --- a/src/gallium/tests/python/tests/texture_transfer.py +++ b/src/gallium/tests/python/tests/texture_transfer.py @@ -72,7 +72,7 @@ class TextureTest(TestCase): level = self.level zslice = self.zslice - bind = PIPE_BIND_SAMPLER_VIEW + bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED geom_flags = 0 sample_count = 0 if not dev.is_format_supported(format, target, sample_count, bind, geom_flags): diff --git a/src/gallium/winsys/radeon/drm/radeon_r300.c b/src/gallium/winsys/radeon/drm/radeon_r300.c index 5840098..ca6ecb6 100644 --- a/src/gallium/winsys/radeon/drm/radeon_r300.c +++ b/src/gallium/winsys/radeon/drm/radeon_r300.c @@ -38,7 +38,7 @@ static unsigned get_pb_usage_from_create_flags(unsigned bind, unsigned usage, PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT)) res |= PB_USAGE_GPU_WRITE; - if (bind & PIPE_BIND_SAMPLER_VIEW) + if (bind & PIPE_BIND_SAMPLER_VIEW_ANY) res |= PB_USAGE_GPU_READ | PB_USAGE_GPU_WRITE; if (bind & (PIPE_BIND_VERTEX_BUFFER | PIPE_BIND_INDEX_BUFFER)) diff --git a/src/mesa/state_tracker/st_atom_pixeltransfer.c b/src/mesa/state_tracker/st_atom_pixeltransfer.c index 8a8d175..345001f 100644 --- a/src/mesa/state_tracker/st_atom_pixeltransfer.c +++ b/src/mesa/state_tracker/st_atom_pixeltransfer.c @@ -124,11 +124,11 @@ create_color_map_texture(GLcontext *ctx) /* find an RGBA texture format */ format = st_choose_format(pipe->screen, GL_RGBA, - PIPE_TEXTURE_2D, 0, PIPE_BIND_SAMPLER_VIEW); + PIPE_TEXTURE_2D, 0, PIPE_BIND_SAMPLER_VIEW_NORMALIZED); /* create texture for color map/table */ pt = st_texture_create(st, PIPE_TEXTURE_2D, format, 0, - texSize, texSize, 1, PIPE_BIND_SAMPLER_VIEW); + texSize, texSize, 1, PIPE_BIND_SAMPLER_VIEW_NORMALIZED); return pt; } diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index 0b8ecd2..3974640 100644 --- a/src/mesa/state_tracker/st_cb_bitmap.c +++ b/src/mesa/state_tracker/st_cb_bitmap.c @@ -277,7 +277,7 @@ make_bitmap_texture(GLcontext *ctx, GLsizei width, GLsizei height, */ pt = st_texture_create(st, PIPE_TEXTURE_2D, st->bitmap.tex_format, 0, width, height, 1, - PIPE_BIND_SAMPLER_VIEW); + PIPE_BIND_SAMPLER_VIEW_NORMALIZED); if (!pt) { _mesa_unmap_pbo_source(ctx, unpack); return NULL; @@ -544,7 +544,7 @@ reset_cache(struct st_context *st) st->bitmap.tex_format, 0, BITMAP_CACHE_WIDTH, BITMAP_CACHE_HEIGHT, 1, - PIPE_BIND_SAMPLER_VIEW); + PIPE_BIND_SAMPLER_VIEW_NORMALIZED); } @@ -809,15 +809,15 @@ st_init_bitmap(struct st_context *st) /* find a usable texture format */ if (screen->is_format_supported(screen, PIPE_FORMAT_I8_UNORM, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) { + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)) { st->bitmap.tex_format = PIPE_FORMAT_I8_UNORM; } else if (screen->is_format_supported(screen, PIPE_FORMAT_A8_UNORM, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) { + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)) { st->bitmap.tex_format = PIPE_FORMAT_A8_UNORM; } else if (screen->is_format_supported(screen, PIPE_FORMAT_L8_UNORM, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) { + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)) { st->bitmap.tex_format = PIPE_FORMAT_L8_UNORM; } else { diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c index 69a3dd4..350cba1 100644 --- a/src/mesa/state_tracker/st_cb_drawpixels.c +++ b/src/mesa/state_tracker/st_cb_drawpixels.c @@ -331,7 +331,7 @@ alloc_texture(struct st_context *st, GLsizei width, GLsizei height, } pt = st_texture_create(st, PIPE_TEXTURE_2D, texFormat, 0, - ptw, pth, 1, PIPE_BIND_SAMPLER_VIEW); + ptw, pth, 1, PIPE_BIND_SAMPLER_VIEW_NORMALIZED); return pt; } @@ -1003,7 +1003,7 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, srcFormat = rbRead->texture->format; if (screen->is_format_supported(screen, srcFormat, PIPE_TEXTURE_2D, sample_count, - PIPE_BIND_SAMPLER_VIEW, 0)) { + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0)) { texFormat = srcFormat; } else { @@ -1017,7 +1017,7 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, else { /* default color format */ texFormat = st_choose_format(screen, GL_RGBA, PIPE_TEXTURE_2D, - sample_count, PIPE_BIND_SAMPLER_VIEW); + sample_count, PIPE_BIND_SAMPLER_VIEW_NORMALIZED); assert(texFormat != PIPE_FORMAT_NONE); } } diff --git a/src/mesa/state_tracker/st_cb_eglimage.c b/src/mesa/state_tracker/st_cb_eglimage.c index 037e576..3af5b1d 100644 --- a/src/mesa/state_tracker/st_cb_eglimage.c +++ b/src/mesa/state_tracker/st_cb_eglimage.c @@ -147,7 +147,7 @@ st_egl_image_target_texture_2d(GLcontext *ctx, GLenum target, struct pipe_surface *ps; unsigned usage; - usage = PIPE_BIND_SAMPLER_VIEW; + usage = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; ps = st_manager_get_egl_image_surface(st, (void *) image_handle, usage); if (ps) { st_bind_surface(ctx, target, texObj, texImage, ps); diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 4c3e368..bc0af17 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -217,14 +217,14 @@ default_bindings(struct st_context *st, enum pipe_format format) unsigned bindings; if (util_format_is_depth_or_stencil(format)) - bindings = PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_DEPTH_STENCIL; + bindings = PIPE_BIND_SAMPLER_VIEW_ALL | PIPE_BIND_DEPTH_STENCIL; else - bindings = PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_RENDER_TARGET; + bindings = PIPE_BIND_SAMPLER_VIEW_ALL | PIPE_BIND_RENDER_TARGET; if (screen->is_format_supported(screen, format, target, 0, bindings, geom)) return bindings; else - return PIPE_BIND_SAMPLER_VIEW; + return PIPE_BIND_SAMPLER_VIEW_ALL; } @@ -456,7 +456,7 @@ compress_with_blit(GLcontext * ctx, templ.depth0 = 1; templ.last_level = 0; templ.usage = PIPE_USAGE_DEFAULT; - templ.bind = PIPE_BIND_SAMPLER_VIEW; + templ.bind = PIPE_BIND_SAMPLER_VIEW_NORMALIZED; src_tex = screen->resource_create(screen, &templ); if (!src_tex) @@ -1602,7 +1602,7 @@ st_copy_texsubimage(GLcontext *ctx, texBaseFormat != GL_DEPTH_STENCIL && screen->is_format_supported(screen, src_format, PIPE_TEXTURE_2D, sample_count, - PIPE_BIND_SAMPLER_VIEW, + PIPE_BIND_SAMPLER_VIEW_NORMALIZED, 0) && screen->is_format_supported(screen, dest_format, PIPE_TEXTURE_2D, 0, diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 90e7867..4384bf5 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -323,7 +323,7 @@ void st_init_extensions(struct st_context *st) PIPE_BIND_DEPTH_STENCIL, 0) && screen->is_format_supported(screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) { + PIPE_BIND_SAMPLER_VIEW_ANY, 0)) { ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE; } else if (screen->is_format_supported(screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED, @@ -331,24 +331,24 @@ void st_init_extensions(struct st_context *st) PIPE_BIND_DEPTH_STENCIL, 0) && screen->is_format_supported(screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) { + PIPE_BIND_SAMPLER_VIEW_ANY, 0)) { ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE; } /* sRGB support */ if (screen->is_format_supported(screen, PIPE_FORMAT_A8B8G8R8_SRGB, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0) || + PIPE_BIND_SAMPLER_VIEW_ANY, 0) || screen->is_format_supported(screen, PIPE_FORMAT_B8G8R8A8_SRGB, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) { + PIPE_BIND_SAMPLER_VIEW_ANY, 0)) { ctx->Extensions.EXT_texture_sRGB = GL_TRUE; } /* s3tc support */ if (screen->is_format_supported(screen, PIPE_FORMAT_DXT5_RGBA, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0) && + PIPE_BIND_SAMPLER_VIEW_ANY, 0) && (ctx->Mesa_DXTn || screen->is_format_supported(screen, PIPE_FORMAT_DXT5_RGBA, PIPE_TEXTURE_2D, 0, @@ -360,10 +360,10 @@ void st_init_extensions(struct st_context *st) /* ycbcr support */ if (screen->is_format_supported(screen, PIPE_FORMAT_UYVY, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0) || + PIPE_BIND_SAMPLER_VIEW_ANY, 0) || screen->is_format_supported(screen, PIPE_FORMAT_YUYV, PIPE_TEXTURE_2D, 0, - PIPE_BIND_SAMPLER_VIEW, 0)) { + PIPE_BIND_SAMPLER_VIEW_ANY, 0)) { ctx->Extensions.MESA_ycbcr_texture = GL_TRUE; } diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c index c9fa7a6..e2ba006 100644 --- a/src/mesa/state_tracker/st_format.c +++ b/src/mesa/state_tracker/st_format.c @@ -395,7 +395,7 @@ default_srgba_format(struct pipe_screen *screen, * the best matching PIPE_FORMAT_x, or PIPE_FORMAT_NONE if there's no match. * This is called during glTexImage2D, for example. * - * The bindings parameter typically has PIPE_BIND_SAMPLER_VIEW set, plus + * The bindings parameter typically has PIPE_BIND_SAMPLER_VIEW_* set, plus * either PIPE_BINDING_RENDER_TARGET or PIPE_BINDING_DEPTH_STENCIL if * we want render-to-texture ability. * @@ -529,7 +529,7 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat, case GL_COMPRESSED_RGB: /* can only sample from compressed formats */ - if (bindings & ~PIPE_BIND_SAMPLER_VIEW) + if (bindings & ~PIPE_BIND_SAMPLER_VIEW_ALL) return PIPE_FORMAT_NONE; else if (screen->is_format_supported(screen, PIPE_FORMAT_DXT1_RGB, target, sample_count, bindings, @@ -541,7 +541,7 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat, case GL_COMPRESSED_RGBA: /* can only sample from compressed formats */ - if (bindings & ~PIPE_BIND_SAMPLER_VIEW) + if (bindings & ~PIPE_BIND_SAMPLER_VIEW_ALL) return PIPE_FORMAT_NONE; else if (screen->is_format_supported(screen, PIPE_FORMAT_DXT3_RGBA, target, sample_count, bindings, @@ -727,9 +727,9 @@ st_ChooseTextureFormat(GLcontext *ctx, GLint internalFormat, */ if (_mesa_is_depth_format(internalFormat) || _mesa_is_depthstencil_format(internalFormat)) - bindings = PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_DEPTH_STENCIL; + bindings = PIPE_BIND_SAMPLER_VIEW_ALL | PIPE_BIND_DEPTH_STENCIL; else - bindings = PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_RENDER_TARGET; + bindings = PIPE_BIND_SAMPLER_VIEW_ALL | PIPE_BIND_RENDER_TARGET; pFormat = st_choose_format(screen, internalFormat, PIPE_TEXTURE_2D, 0, bindings); @@ -737,7 +737,7 @@ st_ChooseTextureFormat(GLcontext *ctx, GLint internalFormat, if (pFormat == PIPE_FORMAT_NONE) { /* try choosing format again, this time without render target bindings */ pFormat = st_choose_format(screen, internalFormat, - PIPE_TEXTURE_2D, 0, PIPE_BIND_SAMPLER_VIEW); + PIPE_TEXTURE_2D, 0, PIPE_BIND_SAMPLER_VIEW_ALL); } if (pFormat == PIPE_FORMAT_NONE) { diff --git a/src/mesa/state_tracker/st_texture.c b/src/mesa/state_tracker/st_texture.c index add6e94..6053f7e 100644 --- a/src/mesa/state_tracker/st_texture.c +++ b/src/mesa/state_tracker/st_texture.c @@ -75,7 +75,7 @@ st_texture_create(struct st_context *st, assert(format); assert(screen->is_format_supported(screen, format, target, 0, - PIPE_BIND_SAMPLER_VIEW, 0)); + bind, 0)); memset(&pt, 0, sizeof(pt)); pt.target = target; -- 1.7.0.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev