summaryrefslogtreecommitdiff
path: root/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2015-11-22 02:46:45 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2015-11-22 02:46:45 +0000
commit3e40341f9dcd7c1bbc9afb8ddb812304820396cf (patch)
tree274b3f522afe1da16ab2b5347758c908bc23fac4 /lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h
parent7b644ad52b574bec410d557155d666ac17fdf51a (diff)
import Mesa 11.0.6
Diffstat (limited to 'lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h')
-rw-r--r--lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h41
1 files changed, 9 insertions, 32 deletions
diff --git a/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h b/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h
index 888f1de35..15c3f4ff0 100644
--- a/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h
+++ b/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h
@@ -23,16 +23,10 @@
#ifndef _NINE_VERTEXSHADER9_H_
#define _NINE_VERTEXSHADER9_H_
-#include "util/u_half.h"
-
#include "iunknown.h"
-#include "device9.h"
-#include "nine_helpers.h"
#include "nine_shader.h"
#include "nine_state.h"
-struct NineVertexDeclaration9;
-
struct NineVertexShader9
{
struct NineUnknown base;
@@ -53,22 +47,20 @@ struct NineVertexShader9
boolean position_t; /* if true, disable vport transform */
boolean point_size; /* if true, set rasterizer.point_size_per_vertex to 1 */
- boolean swvp_only;
unsigned const_used_size; /* in bytes */
struct nine_lconstf lconstf;
+ const struct pipe_stream_output_info *so;
+
uint64_t ff_key[3];
void *ff_cso;
- uint64_t last_key;
+ uint32_t last_key;
void *last_cso;
- uint64_t next_key;
-
- /* so */
- struct nine_shader_variant_so variant_so;
+ uint32_t next_key;
};
static inline struct NineVertexShader9 *
NineVertexShader9( void *data )
@@ -78,28 +70,18 @@ NineVertexShader9( void *data )
static inline BOOL
NineVertexShader9_UpdateKey( struct NineVertexShader9 *vs,
- struct NineDevice9 *device )
+ struct nine_state *state )
{
- struct nine_context *context = &(device->context);
uint8_t samplers_shadow;
- uint64_t key;
+ uint32_t key;
BOOL res;
- samplers_shadow = (uint8_t)((context->samplers_shadow & NINE_VS_SAMPLERS_MASK) >> NINE_SAMPLER_VS(0));
+ samplers_shadow = (uint8_t)((state->samplers_shadow & NINE_VS_SAMPLERS_MASK) >> NINE_SAMPLER_VS(0));
samplers_shadow &= vs->sampler_mask;
key = samplers_shadow;
if (vs->byte_code.version < 0x30)
- key |= (uint32_t) ((!!context->rs[D3DRS_FOGENABLE]) << 8);
- key |= (uint32_t) (context->swvp << 9);
-
- /* We want to use a 64 bits key for performance.
- * Use compressed float16 values for the pointsize min/max in the key.
- * Shaders do not usually output psize.*/
- if (vs->point_size) {
- key |= ((uint64_t)util_float_to_half(asfloat(context->rs[D3DRS_POINTSIZE_MIN]))) << 32;
- key |= ((uint64_t)util_float_to_half(asfloat(context->rs[D3DRS_POINTSIZE_MAX]))) << 48;
- }
+ key |= state->rs[D3DRS_FOGENABLE] << 8;
res = vs->last_key != key;
if (res)
@@ -110,11 +92,6 @@ NineVertexShader9_UpdateKey( struct NineVertexShader9 *vs,
void *
NineVertexShader9_GetVariant( struct NineVertexShader9 *vs );
-void *
-NineVertexShader9_GetVariantProcessVertices( struct NineVertexShader9 *vs,
- struct NineVertexDeclaration9 *vdecl_out,
- struct pipe_stream_output_info *so );
-
/*** public ***/
HRESULT
@@ -130,7 +107,7 @@ NineVertexShader9_ctor( struct NineVertexShader9 *,
void
NineVertexShader9_dtor( struct NineVertexShader9 * );
-HRESULT NINE_WINAPI
+HRESULT WINAPI
NineVertexShader9_GetFunction( struct NineVertexShader9 *This,
void *pData,
UINT *pSizeOfData );