The Mali sample positions are the standard sample positions.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22383>
#include "util/u_helpers.h"
#include "util/u_memory.h"
#include "util/u_prim.h"
+#include "util/u_sample_positions.h"
#include "util/u_vbuf.h"
#include "util/u_viewport.h"
}
static void
-panfrost_get_sample_position(struct pipe_context *context,
- unsigned sample_count, unsigned sample_index,
- float *out_value)
-{
- panfrost_query_sample_position(panfrost_sample_pattern(sample_count),
- sample_index, out_value);
-}
-
-static void
screen_destroy(struct pipe_screen *pscreen)
{
struct panfrost_device *dev = pan_device(pscreen);
pipe->create_sampler_state = panfrost_create_sampler_state;
pipe->create_blend_state = panfrost_create_blend_state;
- pipe->get_sample_position = panfrost_get_sample_position;
+ pipe->get_sample_position = u_default_get_sample_position;
}
#if PAN_ARCH <= 5
mali_ptr panfrost_sample_positions(const struct panfrost_device *dev,
enum mali_sample_pattern pattern);
-void panfrost_query_sample_position(enum mali_sample_pattern pattern,
- unsigned sample_idx, float *out);
unsigned panfrost_query_l2_slices(const struct panfrost_device *dev);
memcpy(dev->sample_positions->ptr.cpu, sample_position_lut,
sizeof(sample_position_lut));
}
-
-/* CPU side LUT query, to implement glGetMultisamplefv */
-
-void
-panfrost_query_sample_position(enum mali_sample_pattern pattern,
- unsigned sample_idx, float *out)
-{
- struct mali_sample_position pos =
- sample_position_lut[pattern].positions[sample_idx];
-
- out[0] = decode_position(pos.x);
- out[1] = decode_position(pos.y);
-}