15da246944a787b933a509f0b65bab466574c3339Jerome Glisse/*
25da246944a787b933a509f0b65bab466574c3339Jerome Glisse * Copyright 2010 Red Hat Inc.
35da246944a787b933a509f0b65bab466574c3339Jerome Glisse *
45da246944a787b933a509f0b65bab466574c3339Jerome Glisse * Permission is hereby granted, free of charge, to any person obtaining a
55da246944a787b933a509f0b65bab466574c3339Jerome Glisse * copy of this software and associated documentation files (the "Software"),
65da246944a787b933a509f0b65bab466574c3339Jerome Glisse * to deal in the Software without restriction, including without limitation
75da246944a787b933a509f0b65bab466574c3339Jerome Glisse * on the rights to use, copy, modify, merge, publish, distribute, sub
85da246944a787b933a509f0b65bab466574c3339Jerome Glisse * license, and/or sell copies of the Software, and to permit persons to whom
95da246944a787b933a509f0b65bab466574c3339Jerome Glisse * the Software is furnished to do so, subject to the following conditions:
105da246944a787b933a509f0b65bab466574c3339Jerome Glisse *
115da246944a787b933a509f0b65bab466574c3339Jerome Glisse * The above copyright notice and this permission notice (including the next
125da246944a787b933a509f0b65bab466574c3339Jerome Glisse * paragraph) shall be included in all copies or substantial portions of the
135da246944a787b933a509f0b65bab466574c3339Jerome Glisse * Software.
145da246944a787b933a509f0b65bab466574c3339Jerome Glisse *
155da246944a787b933a509f0b65bab466574c3339Jerome Glisse * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
165da246944a787b933a509f0b65bab466574c3339Jerome Glisse * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
175da246944a787b933a509f0b65bab466574c3339Jerome Glisse * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
185da246944a787b933a509f0b65bab466574c3339Jerome Glisse * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
195da246944a787b933a509f0b65bab466574c3339Jerome Glisse * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
205da246944a787b933a509f0b65bab466574c3339Jerome Glisse * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
215da246944a787b933a509f0b65bab466574c3339Jerome Glisse * USE OR OTHER DEALINGS IN THE SOFTWARE.
225da246944a787b933a509f0b65bab466574c3339Jerome Glisse */
235da246944a787b933a509f0b65bab466574c3339Jerome Glisse#include <stdio.h>
245da246944a787b933a509f0b65bab466574c3339Jerome Glisse#include <errno.h>
25625593fde252269455f3e23baa5a63afb3389588Kai Wasserbäch#include "pipe/p_defines.h"
26625593fde252269455f3e23baa5a63afb3389588Kai Wasserbäch#include "pipe/p_state.h"
27625593fde252269455f3e23baa5a63afb3389588Kai Wasserbäch#include "pipe/p_context.h"
28625593fde252269455f3e23baa5a63afb3389588Kai Wasserbäch#include "pipe/p_screen.h"
29625593fde252269455f3e23baa5a63afb3389588Kai Wasserbäch#include "util/u_memory.h"
30625593fde252269455f3e23baa5a63afb3389588Kai Wasserbäch#include "util/u_inlines.h"
31588fa884d212eba5ffbc69fda75db37d7c77214cMarek Olšák#include "util/u_transfer.h"
325da246944a787b933a509f0b65bab466574c3339Jerome Glisse
335da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
345da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
355da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
365da246944a787b933a509f0b65bab466574c3339Jerome Glisse
371c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšákstatic void noop_launch_grid(struct pipe_context *ctx,
381c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák                             const struct pipe_grid_info *info)
391c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák{
401c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák}
411c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák
425da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_set_blend_color(struct pipe_context *ctx,
431276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                 const struct pipe_blend_color *state)
445da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
455da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
465da246944a787b933a509f0b65bab466574c3339Jerome Glisse
475da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void *noop_create_blend_state(struct pipe_context *ctx,
481276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                     const struct pipe_blend_state *state)
495da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
50ed164f0d6b8baefa8813cb8fb38a6f7812b76eb8Marek Olšák   return MALLOC(1);
515da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
525da246944a787b933a509f0b65bab466574c3339Jerome Glisse
535da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void *noop_create_dsa_state(struct pipe_context *ctx,
541276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                   const struct pipe_depth_stencil_alpha_state *state)
555da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
56ed164f0d6b8baefa8813cb8fb38a6f7812b76eb8Marek Olšák   return MALLOC(1);
575da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
585da246944a787b933a509f0b65bab466574c3339Jerome Glisse
595da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void *noop_create_rs_state(struct pipe_context *ctx,
601276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                  const struct pipe_rasterizer_state *state)
615da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
62ed164f0d6b8baefa8813cb8fb38a6f7812b76eb8Marek Olšák   return MALLOC(1);
635da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
645da246944a787b933a509f0b65bab466574c3339Jerome Glisse
655da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void *noop_create_sampler_state(struct pipe_context *ctx,
661276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                       const struct pipe_sampler_state *state)
675da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
68ed164f0d6b8baefa8813cb8fb38a6f7812b76eb8Marek Olšák   return MALLOC(1);
695da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
705da246944a787b933a509f0b65bab466574c3339Jerome Glisse
715da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic struct pipe_sampler_view *noop_create_sampler_view(struct pipe_context *ctx,
721276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                                          struct pipe_resource *texture,
731276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                                          const struct pipe_sampler_view *state)
745da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
751276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   struct pipe_sampler_view *sampler_view = CALLOC_STRUCT(pipe_sampler_view);
761276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák
771276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   if (!sampler_view)
781276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák      return NULL;
791276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   /* initialize base object */
801276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   pipe_resource_reference(&sampler_view->texture, texture);
811276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   pipe_reference_init(&sampler_view->reference, 1);
821276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   sampler_view->context = ctx;
831276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   return sampler_view;
845da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
855da246944a787b933a509f0b65bab466574c3339Jerome Glisse
864c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheideggerstatic struct pipe_surface *noop_create_surface(struct pipe_context *ctx,
871276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                                struct pipe_resource *texture,
881276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                                const struct pipe_surface *surf_tmpl)
894c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger{
901276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   struct pipe_surface *surface = CALLOC_STRUCT(pipe_surface);
911276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák
921276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   if (!surface)
931276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák      return NULL;
941276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   pipe_reference_init(&surface->reference, 1);
951276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   pipe_resource_reference(&surface->texture, texture);
961276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   surface->context = ctx;
971276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   surface->format = surf_tmpl->format;
981276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   surface->width = texture->width0;
991276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   surface->height = texture->height0;
1001276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   surface->texture = texture;
1011276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   surface->u.tex.first_layer = surf_tmpl->u.tex.first_layer;
1021276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   surface->u.tex.last_layer = surf_tmpl->u.tex.last_layer;
1031276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   surface->u.tex.level = surf_tmpl->u.tex.level;
1041276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák
1051276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   return surface;
1064c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger}
1076a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák
108532db3b7881f3dfcd299320cbf44443d06b88373Kai Wasserbächstatic void noop_set_sampler_views(struct pipe_context *ctx,
109532db3b7881f3dfcd299320cbf44443d06b88373Kai Wasserbäch                                   enum pipe_shader_type shader,
110a3ed98f7aa85636579a5696bf036ec13e5c9104aBrian Paul                                   unsigned start, unsigned count,
111a3ed98f7aa85636579a5696bf036ec13e5c9104aBrian Paul                                   struct pipe_sampler_view **views)
1125da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1135da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1145da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1157413625ad357c87f409cd1673b40f8dffbc43259Kai Wasserbächstatic void noop_bind_sampler_states(struct pipe_context *ctx,
1167413625ad357c87f409cd1673b40f8dffbc43259Kai Wasserbäch                                     enum pipe_shader_type shader,
117bd1514849b02297693f293df79b47352445f9a51Brian Paul                                     unsigned start, unsigned count,
118bd1514849b02297693f293df79b47352445f9a51Brian Paul                                     void **states)
119bd1514849b02297693f293df79b47352445f9a51Brian Paul{
120bd1514849b02297693f293df79b47352445f9a51Brian Paul}
121bd1514849b02297693f293df79b47352445f9a51Brian Paul
1225da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_set_clip_state(struct pipe_context *ctx,
1231276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                const struct pipe_clip_state *state)
1245da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1255da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1265da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1275da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_set_polygon_stipple(struct pipe_context *ctx,
1281276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                     const struct pipe_poly_stipple *state)
1295da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1305da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1315da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1325da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_set_sample_mask(struct pipe_context *pipe, unsigned sample_mask)
1335da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1345da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1355da246944a787b933a509f0b65bab466574c3339Jerome Glisse
136eaabb4ead07ae043ecc789024028e225ebd0f318Zack Rusinstatic void noop_set_scissor_states(struct pipe_context *ctx,
137eaabb4ead07ae043ecc789024028e225ebd0f318Zack Rusin                                    unsigned start_slot,
138eaabb4ead07ae043ecc789024028e225ebd0f318Zack Rusin                                    unsigned num_scissors,
139eaabb4ead07ae043ecc789024028e225ebd0f318Zack Rusin                                    const struct pipe_scissor_state *state)
1405da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1415da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1425da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1435da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_set_stencil_ref(struct pipe_context *ctx,
1441276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                 const struct pipe_stencil_ref *state)
1455da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1465da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1475da246944a787b933a509f0b65bab466574c3339Jerome Glisse
148eaabb4ead07ae043ecc789024028e225ebd0f318Zack Rusinstatic void noop_set_viewport_states(struct pipe_context *ctx,
149eaabb4ead07ae043ecc789024028e225ebd0f318Zack Rusin                                     unsigned start_slot,
150eaabb4ead07ae043ecc789024028e225ebd0f318Zack Rusin                                     unsigned num_viewports,
151eaabb4ead07ae043ecc789024028e225ebd0f318Zack Rusin                                     const struct pipe_viewport_state *state)
1525da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1535da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1545da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1555da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_set_framebuffer_state(struct pipe_context *ctx,
1561276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                       const struct pipe_framebuffer_state *state)
1575da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1585da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1595da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1605da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_set_constant_buffer(struct pipe_context *ctx,
1611276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                     uint shader, uint index,
1621276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                     const struct pipe_constant_buffer *cb)
1635da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1645da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1655da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1665da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1675da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_sampler_view_destroy(struct pipe_context *ctx,
1681276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                      struct pipe_sampler_view *state)
1695da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1701276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   pipe_resource_reference(&state->texture, NULL);
1711276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   FREE(state);
1725da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1735da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1744c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger
1754c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheideggerstatic void noop_surface_destroy(struct pipe_context *ctx,
1761276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                 struct pipe_surface *surface)
1774c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger{
1781276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   pipe_resource_reference(&surface->texture, NULL);
1791276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   FREE(surface);
1804c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger}
1814c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger
1825da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_bind_state(struct pipe_context *ctx, void *state)
1835da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1845da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1855da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1865da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_delete_state(struct pipe_context *ctx, void *state)
1875da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1881276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   FREE(state);
1895da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1905da246944a787b933a509f0b65bab466574c3339Jerome Glisse
1915da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void noop_set_index_buffer(struct pipe_context *ctx,
1921276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                  const struct pipe_index_buffer *ib)
1935da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
1945da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
1955da246944a787b933a509f0b65bab466574c3339Jerome Glisse
196e73bf3b805de78299f1a652668ba4e6eab9bac94Marek Olšákstatic void noop_set_vertex_buffers(struct pipe_context *ctx,
1971276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                    unsigned start_slot, unsigned count,
1981276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                    const struct pipe_vertex_buffer *buffers)
1995da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
2005da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
2015da246944a787b933a509f0b65bab466574c3339Jerome Glisse
2025da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void *noop_create_vertex_elements(struct pipe_context *ctx,
2031276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                         unsigned count,
2041276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                         const struct pipe_vertex_element *state)
2055da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
206ed164f0d6b8baefa8813cb8fb38a6f7812b76eb8Marek Olšák   return MALLOC(1);
2075da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
2085da246944a787b933a509f0b65bab466574c3339Jerome Glisse
2095da246944a787b933a509f0b65bab466574c3339Jerome Glissestatic void *noop_create_shader_state(struct pipe_context *ctx,
2101276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                      const struct pipe_shader_state *state)
2115da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
212ed164f0d6b8baefa8813cb8fb38a6f7812b76eb8Marek Olšák   return MALLOC(1);
2135da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
2145da246944a787b933a509f0b65bab466574c3339Jerome Glisse
2151c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšákstatic void *noop_create_compute_state(struct pipe_context *ctx,
2161c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák                                       const struct pipe_compute_state *state)
2171c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák{
2181c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   return MALLOC(1);
2191c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák}
2201c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák
2216a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšákstatic struct pipe_stream_output_target *noop_create_stream_output_target(
2226a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák      struct pipe_context *ctx,
2236a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák      struct pipe_resource *res,
2246a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák      unsigned buffer_offset,
2256a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák      unsigned buffer_size)
2266a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák{
2276a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   struct pipe_stream_output_target *t = CALLOC_STRUCT(pipe_stream_output_target);
2286a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   if (!t)
2296a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák      return NULL;
2306a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák
2316a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   pipe_reference_init(&t->reference, 1);
2326a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   pipe_resource_reference(&t->buffer, res);
2336a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   t->buffer_offset = buffer_offset;
2346a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   t->buffer_size = buffer_size;
2356a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   return t;
2366a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák}
2376a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák
2386a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšákstatic void noop_stream_output_target_destroy(struct pipe_context *ctx,
2391276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                              struct pipe_stream_output_target *t)
2406a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák{
2416a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   pipe_resource_reference(&t->buffer, NULL);
2426a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák   FREE(t);
2436a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák}
2446a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák
2456a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšákstatic void noop_set_stream_output_targets(struct pipe_context *ctx,
2461276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                           unsigned num_targets,
2471276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                           struct pipe_stream_output_target **targets,
2481276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák                                           const unsigned *offsets)
2496a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák{
2506a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák}
2516a00e4eaee19cdbc8423e53c22fc8a1d7fdd68ddMarek Olšák
252e72651dc5d70ed97e460e52ace692a70b3c9b50fVinson Leevoid noop_init_state_functions(struct pipe_context *ctx);
253e72651dc5d70ed97e460e52ace692a70b3c9b50fVinson Lee
2545da246944a787b933a509f0b65bab466574c3339Jerome Glissevoid noop_init_state_functions(struct pipe_context *ctx)
2555da246944a787b933a509f0b65bab466574c3339Jerome Glisse{
2561276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_blend_state = noop_create_blend_state;
2571276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_depth_stencil_alpha_state = noop_create_dsa_state;
2581276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_fs_state = noop_create_shader_state;
2591276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_rasterizer_state = noop_create_rs_state;
2601276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_sampler_state = noop_create_sampler_state;
2611276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_sampler_view = noop_create_sampler_view;
2621276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_surface = noop_create_surface;
2631276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_vertex_elements_state = noop_create_vertex_elements;
2641c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->create_compute_state = noop_create_compute_state;
2651c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->create_tcs_state = noop_create_shader_state;
2661c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->create_tes_state = noop_create_shader_state;
2671c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->create_gs_state = noop_create_shader_state;
2681276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_vs_state = noop_create_shader_state;
2691276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->bind_blend_state = noop_bind_state;
2701276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->bind_depth_stencil_alpha_state = noop_bind_state;
2711276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->bind_sampler_states = noop_bind_sampler_states;
2721276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->bind_fs_state = noop_bind_state;
2731276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->bind_rasterizer_state = noop_bind_state;
2741276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->bind_vertex_elements_state = noop_bind_state;
2751c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->bind_compute_state = noop_bind_state;
2761c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->bind_tcs_state = noop_bind_state;
2771c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->bind_tes_state = noop_bind_state;
2781c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->bind_gs_state = noop_bind_state;
2791276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->bind_vs_state = noop_bind_state;
2801276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->delete_blend_state = noop_delete_state;
2811276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->delete_depth_stencil_alpha_state = noop_delete_state;
2821276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->delete_fs_state = noop_delete_state;
2831276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->delete_rasterizer_state = noop_delete_state;
2841276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->delete_sampler_state = noop_delete_state;
285ed164f0d6b8baefa8813cb8fb38a6f7812b76eb8Marek Olšák   ctx->delete_vertex_elements_state = noop_delete_state;
2861c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->delete_compute_state = noop_delete_state;
2871c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->delete_tcs_state = noop_delete_state;
2881c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->delete_tes_state = noop_delete_state;
2891c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->delete_gs_state = noop_delete_state;
2901276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->delete_vs_state = noop_delete_state;
2911276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_blend_color = noop_set_blend_color;
2921276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_clip_state = noop_set_clip_state;
2931276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_constant_buffer = noop_set_constant_buffer;
2941276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_sampler_views = noop_set_sampler_views;
2951276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_framebuffer_state = noop_set_framebuffer_state;
2961276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_polygon_stipple = noop_set_polygon_stipple;
2971276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_sample_mask = noop_set_sample_mask;
2981276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_scissor_states = noop_set_scissor_states;
2991276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_stencil_ref = noop_set_stencil_ref;
3001276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_vertex_buffers = noop_set_vertex_buffers;
3011276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_index_buffer = noop_set_index_buffer;
3021276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_viewport_states = noop_set_viewport_states;
3031276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->sampler_view_destroy = noop_sampler_view_destroy;
3041276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->surface_destroy = noop_surface_destroy;
3051276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->draw_vbo = noop_draw_vbo;
3061c71bccdaa3ae22ebcd79c29e80f50036517aa34Marek Olšák   ctx->launch_grid = noop_launch_grid;
3071276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->create_stream_output_target = noop_create_stream_output_target;
3081276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->stream_output_target_destroy = noop_stream_output_target_destroy;
3091276316d67b3a663175a26802536b8fd6addc9b0Marek Olšák   ctx->set_stream_output_targets = noop_set_stream_output_targets;
3105da246944a787b933a509f0b65bab466574c3339Jerome Glisse}
311