summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/ilo/ilo_format.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/ilo/ilo_format.c')
-rw-r--r--src/gallium/drivers/ilo/ilo_format.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/gallium/drivers/ilo/ilo_format.c b/src/gallium/drivers/ilo/ilo_format.c
index 953be8d802c..033946b4661 100644
--- a/src/gallium/drivers/ilo/ilo_format.c
+++ b/src/gallium/drivers/ilo/ilo_format.c
@@ -297,9 +297,10 @@ static const struct ilo_format_info ilo_format_table[] = {
#undef FI_INITIALIZER
static const struct ilo_format_info *
-lookup_format_info(enum pipe_format format, unsigned bind)
+lookup_format_info(const struct ilo_dev_info *dev,
+ enum pipe_format format, unsigned bind)
{
- const int surfaceformat = ilo_translate_format(format, bind);
+ const int surfaceformat = ilo_translate_format(dev, format, bind);
return (surfaceformat >= 0 && surfaceformat < Elements(ilo_format_table) &&
ilo_format_table[surfaceformat].exists) ?
@@ -311,7 +312,8 @@ lookup_format_info(enum pipe_format format, unsigned bind)
* format. Return -1 on errors.
*/
int
-ilo_translate_color_format(enum pipe_format format)
+ilo_translate_color_format(const struct ilo_dev_info *dev,
+ enum pipe_format format)
{
static const int format_mapping[PIPE_FORMAT_COUNT] = {
[PIPE_FORMAT_NONE] = 0,
@@ -581,7 +583,7 @@ ilo_is_format_supported(struct pipe_screen *screen,
unsigned bindings)
{
struct ilo_screen *is = ilo_screen(screen);
- const int gen = is->dev.gen;
+ const struct ilo_dev_info *dev = &is->dev;
const bool is_pure_int = util_format_is_pure_integer(format);
const struct ilo_format_info *info;
unsigned bind;
@@ -611,31 +613,31 @@ ilo_is_format_supported(struct pipe_screen *screen,
bind = (bindings & PIPE_BIND_RENDER_TARGET);
if (bind) {
- info = lookup_format_info(format, bind);
+ info = lookup_format_info(dev, format, bind);
- if (gen < info->render_target)
+ if (dev->gen < info->render_target)
return false;
- if (!is_pure_int && gen < info->alpha_blend)
+ if (!is_pure_int && dev->gen < info->alpha_blend)
return false;
}
bind = (bindings & PIPE_BIND_SAMPLER_VIEW);
if (bind) {
- info = lookup_format_info(format, bind);
+ info = lookup_format_info(dev, format, bind);
- if (gen < info->sampling)
+ if (dev->gen < info->sampling)
return false;
- if (!is_pure_int && gen < info->filtering)
+ if (!is_pure_int && dev->gen < info->filtering)
return false;
}
bind = (bindings & PIPE_BIND_VERTEX_BUFFER);
if (bind) {
- info = lookup_format_info(format, bind);
+ info = lookup_format_info(dev, format, bind);
- if (gen < info->input_vb)
+ if (dev->gen < info->input_vb)
return false;
}