r600_shader.h revision df121b868a13e7ca76f19d1488b625c02d632a47
1/*
2 * Copyright 2010 Jerome Glisse <glisse@freedesktop.org>
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * on the rights to use, copy, modify, merge, publish, distribute, sub
8 * license, and/or sell copies of the Software, and to permit persons to whom
9 * the Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
19 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
21 * USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */
23#ifndef R600_SHADER_H
24#define R600_SHADER_H
25
26#include "r600_asm.h"
27
28struct r600_shader_io {
29	unsigned		name;
30	unsigned		gpr;
31	unsigned		done;
32	int			sid;
33	unsigned		interpolate;
34	boolean                 centroid;
35	unsigned		lds_pos; /* for evergreen */
36};
37
38struct r600_shader {
39	unsigned		processor_type;
40	struct r600_bytecode		bc;
41	unsigned		ninput;
42	unsigned		noutput;
43	unsigned		npos;
44	unsigned		nlds;
45	struct r600_shader_io	input[32];
46	struct r600_shader_io	output[32];
47	boolean			uses_kill;
48	boolean			fs_write_all;
49	boolean			clamp_color;
50	unsigned		nr_cbufs;
51};
52
53#endif
54