case PIPE_CAP_QUERY_TIMESTAMP:
case PIPE_CAP_CUBE_MAP_ARRAY:
return 1;
+ case PIPE_CAP_TEXTURE_BUFFER_OBJECTS:
+ return 1;
}
/* should only get here on unhandled cases */
debug_printf("Unexpected PIPE_CAP %d query\n", param);
#include "pipe/p_defines.h"
#include "pipe/p_shader_tokens.h"
#include "util/u_math.h"
+#include "util/u_format.h"
#include "util/u_memory.h"
#include "sp_quad.h" /* only for #define QUAD_* tokens */
#include "sp_tex_sample.h"
return compute_lambda_vert;
switch (key.bits.target) {
+ case PIPE_BUFFER:
case PIPE_TEXTURE_1D:
case PIPE_TEXTURE_1D_ARRAY:
return compute_lambda_1d;
const struct pipe_sampler_state *sampler)
{
switch (key.bits.target) {
+ case PIPE_BUFFER:
case PIPE_TEXTURE_1D:
if (filter == PIPE_TEX_FILTER_NEAREST)
return img_filter_1d_nearest;
dims[1] = texture->array_size;
/* fallthrough */
case PIPE_TEXTURE_1D:
- case PIPE_BUFFER:
return;
case PIPE_TEXTURE_2D_ARRAY:
dims[2] = texture->array_size;
case PIPE_TEXTURE_CUBE_ARRAY:
dims[1] = u_minify(texture->height0, level);
dims[2] = texture->array_size / 6;
+ break;
+ case PIPE_BUFFER:
+ dims[0] /= util_format_get_blocksize(view->format);
return;
default:
assert(!"unexpected texture target in sample_get_dims()");
layers = texture->array_size;
switch(texture->target) {
+ case PIPE_BUFFER:
case PIPE_TEXTURE_1D:
for (j = 0; j < TGSI_QUAD_SIZE; j++) {
int x = CLAMP(v_i[j] + offset[0], 0, width - 1);