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