r600g: consolidate more translate functions
This commit is contained in:
@@ -173,76 +173,6 @@ static uint32_t r600_translate_blend_factor(int blend_fact)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static unsigned r600_tex_wrap(unsigned wrap)
|
||||
{
|
||||
switch (wrap) {
|
||||
default:
|
||||
case PIPE_TEX_WRAP_REPEAT:
|
||||
return V_03C000_SQ_TEX_WRAP;
|
||||
case PIPE_TEX_WRAP_CLAMP:
|
||||
return V_03C000_SQ_TEX_CLAMP_HALF_BORDER;
|
||||
case PIPE_TEX_WRAP_CLAMP_TO_EDGE:
|
||||
return V_03C000_SQ_TEX_CLAMP_LAST_TEXEL;
|
||||
case PIPE_TEX_WRAP_CLAMP_TO_BORDER:
|
||||
return V_03C000_SQ_TEX_CLAMP_BORDER;
|
||||
case PIPE_TEX_WRAP_MIRROR_REPEAT:
|
||||
return V_03C000_SQ_TEX_MIRROR;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_HALF_BORDER;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_BORDER;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned r600_tex_filter(unsigned filter)
|
||||
{
|
||||
switch (filter) {
|
||||
default:
|
||||
case PIPE_TEX_FILTER_NEAREST:
|
||||
return V_03C000_SQ_TEX_XY_FILTER_POINT;
|
||||
case PIPE_TEX_FILTER_LINEAR:
|
||||
return V_03C000_SQ_TEX_XY_FILTER_BILINEAR;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned r600_tex_mipfilter(unsigned filter)
|
||||
{
|
||||
switch (filter) {
|
||||
case PIPE_TEX_MIPFILTER_NEAREST:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_POINT;
|
||||
case PIPE_TEX_MIPFILTER_LINEAR:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_LINEAR;
|
||||
default:
|
||||
case PIPE_TEX_MIPFILTER_NONE:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned r600_tex_compare(unsigned compare)
|
||||
{
|
||||
switch (compare) {
|
||||
default:
|
||||
case PIPE_FUNC_NEVER:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_NEVER;
|
||||
case PIPE_FUNC_LESS:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_LESS;
|
||||
case PIPE_FUNC_EQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_EQUAL;
|
||||
case PIPE_FUNC_LEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_LESSEQUAL;
|
||||
case PIPE_FUNC_GREATER:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_GREATER;
|
||||
case PIPE_FUNC_NOTEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_NOTEQUAL;
|
||||
case PIPE_FUNC_GEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_GREATEREQUAL;
|
||||
case PIPE_FUNC_ALWAYS:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_ALWAYS;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned r600_tex_dim(unsigned dim)
|
||||
{
|
||||
switch (dim) {
|
||||
|
@@ -473,6 +473,10 @@ void r600_set_pipe_stencil_ref(struct pipe_context *ctx,
|
||||
void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info);
|
||||
uint32_t r600_translate_stencil_op(int s_op);
|
||||
uint32_t r600_translate_fill(uint32_t func);
|
||||
unsigned r600_tex_wrap(unsigned wrap);
|
||||
unsigned r600_tex_filter(unsigned filter);
|
||||
unsigned r600_tex_mipfilter(unsigned filter);
|
||||
unsigned r600_tex_compare(unsigned compare);
|
||||
|
||||
/*
|
||||
* common helpers
|
||||
|
@@ -116,76 +116,6 @@ static uint32_t r600_translate_blend_factor(int blend_fact)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static unsigned r600_tex_wrap(unsigned wrap)
|
||||
{
|
||||
switch (wrap) {
|
||||
default:
|
||||
case PIPE_TEX_WRAP_REPEAT:
|
||||
return V_03C000_SQ_TEX_WRAP;
|
||||
case PIPE_TEX_WRAP_CLAMP:
|
||||
return V_03C000_SQ_TEX_CLAMP_HALF_BORDER;
|
||||
case PIPE_TEX_WRAP_CLAMP_TO_EDGE:
|
||||
return V_03C000_SQ_TEX_CLAMP_LAST_TEXEL;
|
||||
case PIPE_TEX_WRAP_CLAMP_TO_BORDER:
|
||||
return V_03C000_SQ_TEX_CLAMP_BORDER;
|
||||
case PIPE_TEX_WRAP_MIRROR_REPEAT:
|
||||
return V_03C000_SQ_TEX_MIRROR;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_HALF_BORDER;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_BORDER;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned r600_tex_filter(unsigned filter)
|
||||
{
|
||||
switch (filter) {
|
||||
default:
|
||||
case PIPE_TEX_FILTER_NEAREST:
|
||||
return V_03C000_SQ_TEX_XY_FILTER_POINT;
|
||||
case PIPE_TEX_FILTER_LINEAR:
|
||||
return V_03C000_SQ_TEX_XY_FILTER_BILINEAR;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned r600_tex_mipfilter(unsigned filter)
|
||||
{
|
||||
switch (filter) {
|
||||
case PIPE_TEX_MIPFILTER_NEAREST:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_POINT;
|
||||
case PIPE_TEX_MIPFILTER_LINEAR:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_LINEAR;
|
||||
default:
|
||||
case PIPE_TEX_MIPFILTER_NONE:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned r600_tex_compare(unsigned compare)
|
||||
{
|
||||
switch (compare) {
|
||||
default:
|
||||
case PIPE_FUNC_NEVER:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_NEVER;
|
||||
case PIPE_FUNC_LESS:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_LESS;
|
||||
case PIPE_FUNC_EQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_EQUAL;
|
||||
case PIPE_FUNC_LEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_LESSEQUAL;
|
||||
case PIPE_FUNC_GREATER:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_GREATER;
|
||||
case PIPE_FUNC_NOTEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_NOTEQUAL;
|
||||
case PIPE_FUNC_GEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_GREATEREQUAL;
|
||||
case PIPE_FUNC_ALWAYS:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_ALWAYS;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned r600_tex_dim(unsigned dim)
|
||||
{
|
||||
switch (dim) {
|
||||
|
@@ -978,3 +978,73 @@ uint32_t r600_translate_fill(uint32_t func)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned r600_tex_wrap(unsigned wrap)
|
||||
{
|
||||
switch (wrap) {
|
||||
default:
|
||||
case PIPE_TEX_WRAP_REPEAT:
|
||||
return V_03C000_SQ_TEX_WRAP;
|
||||
case PIPE_TEX_WRAP_CLAMP:
|
||||
return V_03C000_SQ_TEX_CLAMP_HALF_BORDER;
|
||||
case PIPE_TEX_WRAP_CLAMP_TO_EDGE:
|
||||
return V_03C000_SQ_TEX_CLAMP_LAST_TEXEL;
|
||||
case PIPE_TEX_WRAP_CLAMP_TO_BORDER:
|
||||
return V_03C000_SQ_TEX_CLAMP_BORDER;
|
||||
case PIPE_TEX_WRAP_MIRROR_REPEAT:
|
||||
return V_03C000_SQ_TEX_MIRROR;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_HALF_BORDER;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL;
|
||||
case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER:
|
||||
return V_03C000_SQ_TEX_MIRROR_ONCE_BORDER;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned r600_tex_filter(unsigned filter)
|
||||
{
|
||||
switch (filter) {
|
||||
default:
|
||||
case PIPE_TEX_FILTER_NEAREST:
|
||||
return V_03C000_SQ_TEX_XY_FILTER_POINT;
|
||||
case PIPE_TEX_FILTER_LINEAR:
|
||||
return V_03C000_SQ_TEX_XY_FILTER_BILINEAR;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned r600_tex_mipfilter(unsigned filter)
|
||||
{
|
||||
switch (filter) {
|
||||
case PIPE_TEX_MIPFILTER_NEAREST:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_POINT;
|
||||
case PIPE_TEX_MIPFILTER_LINEAR:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_LINEAR;
|
||||
default:
|
||||
case PIPE_TEX_MIPFILTER_NONE:
|
||||
return V_03C000_SQ_TEX_Z_FILTER_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned r600_tex_compare(unsigned compare)
|
||||
{
|
||||
switch (compare) {
|
||||
default:
|
||||
case PIPE_FUNC_NEVER:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_NEVER;
|
||||
case PIPE_FUNC_LESS:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_LESS;
|
||||
case PIPE_FUNC_EQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_EQUAL;
|
||||
case PIPE_FUNC_LEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_LESSEQUAL;
|
||||
case PIPE_FUNC_GREATER:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_GREATER;
|
||||
case PIPE_FUNC_NOTEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_NOTEQUAL;
|
||||
case PIPE_FUNC_GEQUAL:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_GREATEREQUAL;
|
||||
case PIPE_FUNC_ALWAYS:
|
||||
return V_03C000_SQ_TEX_DEPTH_COMPARE_ALWAYS;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user