summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/ilo
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/ilo')
-rw-r--r--src/gallium/drivers/ilo/ilo_format.c1
-rw-r--r--src/gallium/drivers/ilo/ilo_screen.c3
-rw-r--r--src/gallium/drivers/ilo/ilo_state.c161
3 files changed, 9 insertions, 156 deletions
diff --git a/src/gallium/drivers/ilo/ilo_format.c b/src/gallium/drivers/ilo/ilo_format.c
index 40b5ffa75c7..72575f43fb4 100644
--- a/src/gallium/drivers/ilo/ilo_format.c
+++ b/src/gallium/drivers/ilo/ilo_format.c
@@ -589,6 +589,7 @@ ilo_translate_color_format(enum pipe_format format)
[PIPE_FORMAT_R16A16_SINT] = 0,
[PIPE_FORMAT_R32A32_UINT] = 0,
[PIPE_FORMAT_R32A32_SINT] = 0,
+ [PIPE_FORMAT_R10G10B10A2_UINT] = BRW_SURFACEFORMAT_R10G10B10A2_UINT,
};
int sfmt = format_mapping[format];
diff --git a/src/gallium/drivers/ilo/ilo_screen.c b/src/gallium/drivers/ilo/ilo_screen.c
index ddf11ff9679..a345b70b658 100644
--- a/src/gallium/drivers/ilo/ilo_screen.c
+++ b/src/gallium/drivers/ilo/ilo_screen.c
@@ -286,7 +286,6 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param)
switch (param) {
case PIPE_CAP_NPOT_TEXTURES:
- case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
case PIPE_CAP_TWO_SIDED_STENCIL:
return true;
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
@@ -428,6 +427,8 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param)
return ILO_MAX_VIEWPORTS;
case PIPE_CAP_ENDIANNESS:
return PIPE_ENDIAN_LITTLE;
+ case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
+ return true;
default:
return 0;
diff --git a/src/gallium/drivers/ilo/ilo_state.c b/src/gallium/drivers/ilo/ilo_state.c
index 91d7c7637f4..fc120f88b94 100644
--- a/src/gallium/drivers/ilo/ilo_state.c
+++ b/src/gallium/drivers/ilo/ilo_state.c
@@ -308,84 +308,6 @@ ilo_bind_sampler_states(struct pipe_context *pipe, unsigned shader,
}
static void
-ilo_bind_fragment_sampler_states(struct pipe_context *pipe,
- unsigned num_samplers,
- void **samplers)
-{
- struct ilo_context *ilo = ilo_context(pipe);
-
- ilo_bind_sampler_states(pipe, PIPE_SHADER_FRAGMENT,
- 0, num_samplers, samplers);
-
- if (ilo->sampler[PIPE_SHADER_FRAGMENT].count > num_samplers) {
- ilo_bind_sampler_states(pipe, PIPE_SHADER_FRAGMENT, num_samplers,
- ilo->sampler[PIPE_SHADER_FRAGMENT].count - num_samplers, NULL);
- }
-}
-
-static void
-ilo_bind_vertex_sampler_states(struct pipe_context *pipe,
- unsigned num_samplers,
- void **samplers)
-{
- struct ilo_context *ilo = ilo_context(pipe);
-
- ilo_bind_sampler_states(pipe, PIPE_SHADER_VERTEX,
- 0, num_samplers, samplers);
-
- if (ilo->sampler[PIPE_SHADER_VERTEX].count > num_samplers) {
- ilo_bind_sampler_states(pipe, PIPE_SHADER_VERTEX, num_samplers,
- ilo->sampler[PIPE_SHADER_VERTEX].count - num_samplers, NULL);
- }
-}
-
-static void
-ilo_bind_geometry_sampler_states(struct pipe_context *pipe,
- unsigned num_samplers,
- void **samplers)
-{
- struct ilo_context *ilo = ilo_context(pipe);
-
- ilo_bind_sampler_states(pipe, PIPE_SHADER_GEOMETRY,
- 0, num_samplers, samplers);
-
- if (ilo->sampler[PIPE_SHADER_GEOMETRY].count > num_samplers) {
- ilo_bind_sampler_states(pipe, PIPE_SHADER_GEOMETRY, num_samplers,
- ilo->sampler[PIPE_SHADER_GEOMETRY].count - num_samplers, NULL);
- }
-}
-
-static void
-ilo_bind_compute_sampler_states(struct pipe_context *pipe,
- unsigned start_slot,
- unsigned num_samplers,
- void **samplers)
-{
- ilo_bind_sampler_states(pipe, PIPE_SHADER_COMPUTE,
- start_slot, num_samplers, samplers);
-}
-
-static void
-ilo_bind_sampler_states2(struct pipe_context *pipe, unsigned shader,
- unsigned start, unsigned count, void **samplers)
-{
- switch (shader) {
- case PIPE_SHADER_VERTEX:
- ilo_bind_vertex_sampler_states(pipe, count, samplers);
- break;
- case PIPE_SHADER_GEOMETRY:
- ilo_bind_geometry_sampler_states(pipe, count, samplers);
- break;
- case PIPE_SHADER_FRAGMENT:
- ilo_bind_fragment_sampler_states(pipe, count, samplers);
- break;
- case PIPE_SHADER_COMPUTE:
- ilo_bind_compute_sampler_states(pipe, start, count, samplers);
- break;
- }
-}
-
-static void
ilo_delete_sampler_state(struct pipe_context *pipe, void *state)
{
FREE(state);
@@ -826,94 +748,23 @@ ilo_set_sampler_views(struct pipe_context *pipe, unsigned shader,
dst->count = count;
}
-}
-
-static void
-ilo_set_fragment_sampler_views(struct pipe_context *pipe,
- unsigned num_views,
- struct pipe_sampler_view **views)
-{
- struct ilo_context *ilo = ilo_context(pipe);
-
- ilo_set_sampler_views(pipe, PIPE_SHADER_FRAGMENT, 0, num_views, views);
-
- if (ilo->view[PIPE_SHADER_FRAGMENT].count > num_views) {
- ilo_set_sampler_views(pipe, PIPE_SHADER_FRAGMENT, num_views,
- ilo->view[PIPE_SHADER_FRAGMENT].count - num_views, NULL);
- }
-
- ilo->dirty |= ILO_DIRTY_VIEW_FS;
-}
-
-static void
-ilo_set_vertex_sampler_views(struct pipe_context *pipe,
- unsigned num_views,
- struct pipe_sampler_view **views)
-{
- struct ilo_context *ilo = ilo_context(pipe);
-
- ilo_set_sampler_views(pipe, PIPE_SHADER_VERTEX, 0, num_views, views);
-
- if (ilo->view[PIPE_SHADER_VERTEX].count > num_views) {
- ilo_set_sampler_views(pipe, PIPE_SHADER_VERTEX, num_views,
- ilo->view[PIPE_SHADER_VERTEX].count - num_views, NULL);
- }
-
- ilo->dirty |= ILO_DIRTY_VIEW_VS;
-}
-
-static void
-ilo_set_geometry_sampler_views(struct pipe_context *pipe,
- unsigned num_views,
- struct pipe_sampler_view **views)
-{
- struct ilo_context *ilo = ilo_context(pipe);
-
- ilo_set_sampler_views(pipe, PIPE_SHADER_GEOMETRY, 0, num_views, views);
-
- if (ilo->view[PIPE_SHADER_GEOMETRY].count > num_views) {
- ilo_set_sampler_views(pipe, PIPE_SHADER_GEOMETRY, num_views,
- ilo->view[PIPE_SHADER_GEOMETRY].count - num_views, NULL);
- }
-
- ilo->dirty |= ILO_DIRTY_VIEW_GS;
-}
-static void
-ilo_set_compute_sampler_views(struct pipe_context *pipe,
- unsigned start_slot, unsigned num_views,
- struct pipe_sampler_view **views)
-{
- struct ilo_context *ilo = ilo_context(pipe);
-
- ilo_set_sampler_views(pipe, PIPE_SHADER_COMPUTE,
- start_slot, num_views, views);
-
- ilo->dirty |= ILO_DIRTY_VIEW_CS;
-}
-
-static void
-ilo_set_sampler_views2(struct pipe_context *pipe, unsigned shader,
- unsigned start_slot, unsigned num_views,
- struct pipe_sampler_view **views)
-{
switch (shader) {
case PIPE_SHADER_VERTEX:
- ilo_set_vertex_sampler_views(pipe, num_views, views);
+ ilo->dirty |= ILO_DIRTY_VIEW_VS;
break;
case PIPE_SHADER_GEOMETRY:
- ilo_set_geometry_sampler_views(pipe, num_views, views);
+ ilo->dirty |= ILO_DIRTY_VIEW_GS;
break;
case PIPE_SHADER_FRAGMENT:
- ilo_set_fragment_sampler_views(pipe, num_views, views);
+ ilo->dirty |= ILO_DIRTY_VIEW_FS;
break;
case PIPE_SHADER_COMPUTE:
- ilo_set_compute_sampler_views(pipe, start_slot, num_views, views);
+ ilo->dirty |= ILO_DIRTY_VIEW_CS;
break;
}
}
-
static void
ilo_set_shader_resources(struct pipe_context *pipe,
unsigned start, unsigned count,
@@ -1281,7 +1132,7 @@ ilo_init_state_functions(struct ilo_context *ilo)
ilo->base.bind_blend_state = ilo_bind_blend_state;
ilo->base.delete_blend_state = ilo_delete_blend_state;
ilo->base.create_sampler_state = ilo_create_sampler_state;
- ilo->base.bind_sampler_states = ilo_bind_sampler_states2;
+ ilo->base.bind_sampler_states = ilo_bind_sampler_states;
ilo->base.delete_sampler_state = ilo_delete_sampler_state;
ilo->base.create_rasterizer_state = ilo_create_rasterizer_state;
ilo->base.bind_rasterizer_state = ilo_bind_rasterizer_state;
@@ -1311,7 +1162,7 @@ ilo_init_state_functions(struct ilo_context *ilo)
ilo->base.set_polygon_stipple = ilo_set_polygon_stipple;
ilo->base.set_scissor_states = ilo_set_scissor_states;
ilo->base.set_viewport_states = ilo_set_viewport_states;
- ilo->base.set_sampler_views = ilo_set_sampler_views2;
+ ilo->base.set_sampler_views = ilo_set_sampler_views;
ilo->base.set_shader_resources = ilo_set_shader_resources;
ilo->base.set_vertex_buffers = ilo_set_vertex_buffers;
ilo->base.set_index_buffer = ilo_set_index_buffer;