From: Marek Olšák <marek.ol...@amd.com> This can be derived from the shader caps. --- src/gallium/docs/source/screen.rst | 2 -- src/gallium/drivers/freedreno/freedreno_screen.c | 2 -- src/gallium/drivers/i915/i915_screen.c | 7 ------- src/gallium/drivers/ilo/ilo_screen.c | 2 -- src/gallium/drivers/llvmpipe/lp_screen.c | 2 -- src/gallium/drivers/nouveau/nv30/nv30_screen.c | 2 -- src/gallium/drivers/nouveau/nv50/nv50_screen.c | 2 -- src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 -- src/gallium/drivers/r300/r300_screen.c | 2 -- src/gallium/drivers/r600/r600_pipe.c | 2 -- src/gallium/drivers/radeonsi/si_pipe.c | 2 -- src/gallium/drivers/softpipe/sp_screen.c | 2 -- src/gallium/drivers/svga/svga_screen.c | 2 -- src/gallium/include/pipe/p_defines.h | 3 --- src/mesa/state_tracker/st_extensions.c | 10 ++++++---- 15 files changed, 6 insertions(+), 38 deletions(-)
diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst index ce96f688..ed8e832 100644 --- a/src/gallium/docs/source/screen.rst +++ b/src/gallium/docs/source/screen.rst @@ -53,8 +53,6 @@ The integer capabilities: opcodes to the Shader Model 3 specification. XXX oh god this is horrible * ``PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS``: The maximum number of stream buffers. * ``PIPE_CAP_PRIMITIVE_RESTART``: Whether primitive restart is supported. -* ``PIPE_CAP_MAX_COMBINED_SAMPLERS``: The total number of samplers accessible from - the vertex and fragment shader, inclusive. * ``PIPE_CAP_INDEP_BLEND_ENABLE``: Whether per-rendertarget blend enabling and channel masks are supported. If 0, then the first rendertarget's blend mask is replicated across all MRTs. diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index 10c5e18..1a7b80c 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -218,8 +218,6 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return MAX_MIP_LEVELS; case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: return 9192; - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 20; /* Render targets. */ case PIPE_CAP_MAX_RENDER_TARGETS: diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c index 8b29fc2..842625e 100644 --- a/src/gallium/drivers/i915/i915_screen.c +++ b/src/gallium/drivers/i915/i915_screen.c @@ -236,13 +236,6 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap) return is->debug.lie ? 1 : 0; /* Texturing. */ - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return i915_get_shader_param(screen, - PIPE_SHADER_VERTEX, - PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS) + - i915_get_shader_param(screen, - PIPE_SHADER_FRAGMENT, - PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS); case PIPE_CAP_MAX_TEXTURE_2D_LEVELS: return I915_MAX_TEXTURE_2D_LEVELS; case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: diff --git a/src/gallium/drivers/ilo/ilo_screen.c b/src/gallium/drivers/ilo/ilo_screen.c index 54fbf68..2b19ad7 100644 --- a/src/gallium/drivers/ilo/ilo_screen.c +++ b/src/gallium/drivers/ilo/ilo_screen.c @@ -338,8 +338,6 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param) return ILO_MAX_SO_BUFFERS; case PIPE_CAP_PRIMITIVE_RESTART: return true; - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return ILO_MAX_SAMPLERS * 2; case PIPE_CAP_INDEP_BLEND_ENABLE: case PIPE_CAP_INDEP_BLEND_FUNC: return true; diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index c8eb3ba..3fa9a98 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -106,8 +106,6 @@ static int llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param) { switch (param) { - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 2 * PIPE_MAX_SAMPLERS; /* VS + FS samplers */ case PIPE_CAP_NPOT_TEXTURES: case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: return 1; diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c index 2610330..ad52ddf 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c @@ -60,8 +60,6 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return 10; case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: return 13; - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 16; case PIPE_CAP_GLSL_FEATURE_LEVEL: return 120; /* supported capabilities */ diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c index 43e0f50..6bc03ae 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c @@ -85,8 +85,6 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) const uint16_t class_3d = nouveau_screen(pscreen)->class_3d; switch (param) { - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 64; case PIPE_CAP_MAX_TEXTURE_2D_LEVELS: return 14; case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index 0457e9f..59ac3e5 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -71,8 +71,6 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) const uint16_t class_3d = nouveau_screen(pscreen)->class_3d; switch (param) { - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 16 * 5; case PIPE_CAP_MAX_TEXTURE_2D_LEVELS: case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: return 15; diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 7eca5e1..352fed5 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -181,8 +181,6 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param) return 0; /* Texturing. */ - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return r300screen->caps.num_tex_units; case PIPE_CAP_MAX_TEXTURE_2D_LEVELS: case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 74e007b..943e332 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -472,8 +472,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: return rscreen->b.info.drm_minor >= 9 ? (family >= CHIP_CEDAR ? 16384 : 8192) : 0; - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 32; /* Render targets. */ case PIPE_CAP_MAX_RENDER_TARGETS: diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index c1fe715..17c9d24 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -371,8 +371,6 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param) return 15; case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: return 16384; - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 32; /* Render targets. */ case PIPE_CAP_MAX_RENDER_TARGETS: diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index 69cb09f..f2ded2e 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -66,8 +66,6 @@ static int softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param) { switch (param) { - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 2 * PIPE_MAX_SAMPLERS; /* VS + FS */ case PIPE_CAP_NPOT_TEXTURES: case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: return 1; diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c index 330ffdf..e1ebe10 100644 --- a/src/gallium/drivers/svga/svga_screen.c +++ b/src/gallium/drivers/svga/svga_screen.c @@ -139,8 +139,6 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param) SVGA3dDevCapResult result; switch (param) { - case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return 16; case PIPE_CAP_NPOT_TEXTURES: case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: return 1; diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 982f529..43ea831 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -469,9 +469,6 @@ enum pipe_cap { PIPE_CAP_SM3 = 29, /*< Shader Model, supported */ PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS = 30, PIPE_CAP_PRIMITIVE_RESTART = 31, - /** Maximum texture image units accessible from vertex and fragment shaders - * combined */ - PIPE_CAP_MAX_COMBINED_SAMPLERS = 32, /** blend enables and write masks per rendertarget */ PIPE_CAP_INDEP_BLEND_ENABLE = 33, /** different blend funcs per rendertarget */ diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index c17601a..4231d4c 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -89,10 +89,6 @@ void st_init_limits(struct st_context *st) c->MaxArrayTextureLayers = screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS); - c->MaxCombinedTextureImageUnits - = _min(screen->get_param(screen, PIPE_CAP_MAX_COMBINED_SAMPLERS), - MAX_COMBINED_TEXTURE_IMAGE_UNITS); - /* Define max viewport size and max renderbuffer size in terms of * max texture size (note: max tex RECT size = max tex 2D size). * If this isn't true for some hardware we'll need new PIPE_CAP_ queries. @@ -243,6 +239,12 @@ void st_init_limits(struct st_context *st) options->LowerClipDistance = true; } + c->MaxCombinedTextureImageUnits = + _min(c->Program[MESA_SHADER_VERTEX].MaxTextureImageUnits + + c->Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits + + c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, + MAX_COMBINED_TEXTURE_IMAGE_UNITS); + /* This depends on program constants. */ c->MaxTextureCoordUnits = _min(c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, MAX_TEXTURE_COORD_UNITS); -- 1.8.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev