mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 15:50:17 +01:00
i965/vec4: Move vec4 data structures and functions to brw_vec4.{cpp,h}.
This patch moves the following things into brw_vec4.{cpp,h}:
- struct brw_vec4_compile
- struct brw_vec4_prog_key
- brw_vec4_prog_data_compare()
- brw_vec4_prog_data_free()
This will allow us to avoid having to include brw_vs.h in
geometry-shader-specific files.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
e556286802
commit
72168f5f00
4 changed files with 72 additions and 64 deletions
|
|
@ -1562,4 +1562,31 @@ brw_vs_emit(struct brw_context *brw,
|
|||
return generated;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
brw_vec4_prog_data_compare(const struct brw_vec4_prog_data *a,
|
||||
const struct brw_vec4_prog_data *b)
|
||||
{
|
||||
/* Compare all the struct up to the pointers. */
|
||||
if (memcmp(a, b, offsetof(struct brw_vec4_prog_data, param)))
|
||||
return false;
|
||||
|
||||
if (memcmp(a->param, b->param, a->nr_params * sizeof(void *)))
|
||||
return false;
|
||||
|
||||
if (memcmp(a->pull_param, b->pull_param, a->nr_pull_params * sizeof(void *)))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
brw_vec4_prog_data_free(const struct brw_vec4_prog_data *prog_data)
|
||||
{
|
||||
ralloc_free((void *)prog_data->param);
|
||||
ralloc_free((void *)prog_data->pull_param);
|
||||
}
|
||||
|
||||
|
||||
} /* extern "C" */
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "brw_shader.h"
|
||||
#include "main/compiler.h"
|
||||
#include "program/hash_table.h"
|
||||
#include "brw_program.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
|
@ -42,11 +43,52 @@ extern "C" {
|
|||
|
||||
#include "glsl/ir.h"
|
||||
|
||||
struct brw_vec4_compile;
|
||||
struct brw_vs_compile;
|
||||
struct brw_vec4_prog_key;
|
||||
|
||||
|
||||
struct brw_vec4_compile {
|
||||
GLuint last_scratch; /**< measured in 32-byte (register size) units */
|
||||
};
|
||||
|
||||
|
||||
struct brw_vec4_prog_key {
|
||||
GLuint program_string_id;
|
||||
|
||||
/**
|
||||
* True if at least one clip flag is enabled, regardless of whether the
|
||||
* shader uses clip planes or gl_ClipDistance.
|
||||
*/
|
||||
GLuint userclip_active:1;
|
||||
|
||||
/**
|
||||
* How many user clipping planes are being uploaded to the vertex shader as
|
||||
* push constants.
|
||||
*/
|
||||
GLuint nr_userclip_plane_consts:4;
|
||||
|
||||
/**
|
||||
* True if the shader uses gl_ClipDistance, regardless of whether any clip
|
||||
* flags are enabled.
|
||||
*/
|
||||
GLuint uses_clip_distance:1;
|
||||
|
||||
GLuint clamp_vertex_color:1;
|
||||
|
||||
struct brw_sampler_prog_key_data tex;
|
||||
};
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
bool brw_vec4_prog_data_compare(const struct brw_vec4_prog_data *a,
|
||||
const struct brw_vec4_prog_data *b);
|
||||
void brw_vec4_prog_data_free(const struct brw_vec4_prog_data *prog_data);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
|
||||
namespace brw {
|
||||
|
||||
class dst_reg;
|
||||
|
|
|
|||
|
|
@ -173,24 +173,6 @@ gl_clip_plane *brw_select_clip_planes(struct gl_context *ctx)
|
|||
}
|
||||
|
||||
|
||||
bool
|
||||
brw_vec4_prog_data_compare(const struct brw_vec4_prog_data *a,
|
||||
const struct brw_vec4_prog_data *b)
|
||||
{
|
||||
/* Compare all the struct up to the pointers. */
|
||||
if (memcmp(a, b, offsetof(struct brw_vec4_prog_data, param)))
|
||||
return false;
|
||||
|
||||
if (memcmp(a->param, b->param, a->nr_params * sizeof(void *)))
|
||||
return false;
|
||||
|
||||
if (memcmp(a->pull_param, b->pull_param, a->nr_pull_params * sizeof(void *)))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
brw_vs_prog_data_compare(const void *in_a, const void *in_b,
|
||||
int aux_size, const void *in_key)
|
||||
|
|
@ -551,14 +533,6 @@ brw_vs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
brw_vec4_prog_data_free(const struct brw_vec4_prog_data *prog_data)
|
||||
{
|
||||
ralloc_free((void *)prog_data->param);
|
||||
ralloc_free((void *)prog_data->pull_param);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
brw_vs_prog_data_free(const void *in_prog_data)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include "brw_context.h"
|
||||
#include "brw_eu.h"
|
||||
#include "brw_program.h"
|
||||
#include "brw_vec4.h"
|
||||
#include "program/program.h"
|
||||
|
||||
/**
|
||||
|
|
@ -50,33 +50,6 @@
|
|||
#define BRW_ATTRIB_WA_SIGN 32 /* interpret as signed in shader */
|
||||
#define BRW_ATTRIB_WA_SCALE 64 /* interpret as scaled in shader */
|
||||
|
||||
struct brw_vec4_prog_key {
|
||||
GLuint program_string_id;
|
||||
|
||||
/**
|
||||
* True if at least one clip flag is enabled, regardless of whether the
|
||||
* shader uses clip planes or gl_ClipDistance.
|
||||
*/
|
||||
GLuint userclip_active:1;
|
||||
|
||||
/**
|
||||
* How many user clipping planes are being uploaded to the vertex shader as
|
||||
* push constants.
|
||||
*/
|
||||
GLuint nr_userclip_plane_consts:4;
|
||||
|
||||
/**
|
||||
* True if the shader uses gl_ClipDistance, regardless of whether any clip
|
||||
* flags are enabled.
|
||||
*/
|
||||
GLuint uses_clip_distance:1;
|
||||
|
||||
GLuint clamp_vertex_color:1;
|
||||
|
||||
struct brw_sampler_prog_key_data tex;
|
||||
};
|
||||
|
||||
|
||||
struct brw_vs_prog_key {
|
||||
struct brw_vec4_prog_key base;
|
||||
|
||||
|
|
@ -99,11 +72,6 @@ struct brw_vs_prog_key {
|
|||
};
|
||||
|
||||
|
||||
struct brw_vec4_compile {
|
||||
GLuint last_scratch; /**< measured in 32-byte (register size) units */
|
||||
};
|
||||
|
||||
|
||||
struct brw_vs_compile {
|
||||
struct brw_vec4_compile base;
|
||||
struct brw_vs_prog_key key;
|
||||
|
|
@ -125,11 +93,8 @@ bool brw_vs_precompile(struct gl_context *ctx, struct gl_shader_program *prog);
|
|||
void brw_vs_debug_recompile(struct brw_context *brw,
|
||||
struct gl_shader_program *prog,
|
||||
const struct brw_vs_prog_key *key);
|
||||
bool brw_vec4_prog_data_compare(const struct brw_vec4_prog_data *a,
|
||||
const struct brw_vec4_prog_data *b);
|
||||
bool brw_vs_prog_data_compare(const void *a, const void *b,
|
||||
int aux_size, const void *key);
|
||||
void brw_vec4_prog_data_free(const struct brw_vec4_prog_data *prog_data);
|
||||
void brw_vs_prog_data_free(const void *in_prog_data);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue