st/mesa: reformatting in st_cb_drawpixels.c
This commit is contained in:
@@ -38,27 +38,27 @@
|
||||
#include "main/texstore.h"
|
||||
#include "program/program.h"
|
||||
#include "program/prog_print.h"
|
||||
#include "program/prog_instruction.h"
|
||||
|
||||
#include "st_debug.h"
|
||||
#include "st_context.h"
|
||||
#include "st_atom.h"
|
||||
#include "st_atom_constbuf.h"
|
||||
#include "st_program.h"
|
||||
#include "st_cb_drawpixels.h"
|
||||
#include "st_cb_readpixels.h"
|
||||
#include "st_cb_fbo.h"
|
||||
#include "st_context.h"
|
||||
#include "st_debug.h"
|
||||
#include "st_format.h"
|
||||
#include "st_program.h"
|
||||
#include "st_texture.h"
|
||||
|
||||
#include "pipe/p_context.h"
|
||||
#include "pipe/p_defines.h"
|
||||
#include "util/u_inlines.h"
|
||||
#include "tgsi/tgsi_ureg.h"
|
||||
#include "util/u_tile.h"
|
||||
#include "util/u_draw_quad.h"
|
||||
#include "util/u_format.h"
|
||||
#include "util/u_inlines.h"
|
||||
#include "util/u_math.h"
|
||||
#include "program/prog_instruction.h"
|
||||
#include "util/u_tile.h"
|
||||
#include "cso_cache/cso_context.h"
|
||||
|
||||
|
||||
@@ -168,7 +168,8 @@ combined_drawpix_fragment_program(struct gl_context *ctx)
|
||||
* \return pointer to the Gallium driver fragment shader
|
||||
*/
|
||||
static void *
|
||||
make_fragment_shader_z(struct st_context *st, GLboolean write_depth, GLboolean write_stencil)
|
||||
make_fragment_shader_z(struct st_context *st, GLboolean write_depth,
|
||||
GLboolean write_stencil)
|
||||
{
|
||||
struct gl_context *ctx = st->ctx;
|
||||
struct gl_program *p;
|
||||
@@ -200,8 +201,8 @@ make_fragment_shader_z(struct st_context *st, GLboolean write_depth, GLboolean w
|
||||
}
|
||||
_mesa_init_instructions(p->Instructions, p->NumInstructions);
|
||||
|
||||
/* TEX result.depth, fragment.texcoord[0], texture[0], 2D; */
|
||||
if (write_depth) {
|
||||
/* TEX result.depth, fragment.texcoord[0], texture[0], 2D; */
|
||||
p->Instructions[ic].Opcode = OPCODE_TEX;
|
||||
p->Instructions[ic].DstReg.File = PROGRAM_OUTPUT;
|
||||
p->Instructions[ic].DstReg.Index = FRAG_RESULT_DEPTH;
|
||||
@@ -214,6 +215,7 @@ make_fragment_shader_z(struct st_context *st, GLboolean write_depth, GLboolean w
|
||||
}
|
||||
|
||||
if (write_stencil) {
|
||||
/* TEX result.stencil, fragment.texcoord[0], texture[0], 2D; */
|
||||
p->Instructions[ic].Opcode = OPCODE_TEX;
|
||||
p->Instructions[ic].DstReg.File = PROGRAM_OUTPUT;
|
||||
p->Instructions[ic].DstReg.Index = FRAG_RESULT_STENCIL;
|
||||
@@ -262,8 +264,7 @@ make_passthrough_vertex_shader(struct st_context *st,
|
||||
GLboolean passColor)
|
||||
{
|
||||
if (!st->drawpix.vert_shaders[passColor]) {
|
||||
struct ureg_program *ureg =
|
||||
ureg_create( TGSI_PROCESSOR_VERTEX );
|
||||
struct ureg_program *ureg = ureg_create( TGSI_PROCESSOR_VERTEX );
|
||||
|
||||
if (ureg == NULL)
|
||||
return NULL;
|
||||
@@ -353,7 +354,8 @@ make_texture(struct st_context *st,
|
||||
|
||||
baseFormat = base_format(format);
|
||||
|
||||
mformat = st_ChooseTextureFormat_renderable(ctx, baseFormat, format, type, GL_FALSE);
|
||||
mformat = st_ChooseTextureFormat_renderable(ctx, baseFormat,
|
||||
format, type, GL_FALSE);
|
||||
assert(mformat);
|
||||
|
||||
pipeFormat = st_mesa_format_to_pipe_format(mformat);
|
||||
@@ -526,7 +528,8 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
|
||||
void *driver_vp,
|
||||
void *driver_fp,
|
||||
const GLfloat *color,
|
||||
GLboolean invertTex, GLboolean write_depth, GLboolean write_stencil)
|
||||
GLboolean invertTex,
|
||||
GLboolean write_depth, GLboolean write_stencil)
|
||||
{
|
||||
struct st_context *st = st_context(ctx);
|
||||
struct pipe_context *pipe = st->pipe;
|
||||
@@ -539,7 +542,8 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
|
||||
/* XXX if DrawPixels image is larger than max texture size, break
|
||||
* it up into chunks.
|
||||
*/
|
||||
maxSize = 1 << (pipe->screen->get_param(pipe->screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS) - 1);
|
||||
maxSize = 1 << (pipe->screen->get_param(pipe->screen,
|
||||
PIPE_CAP_MAX_TEXTURE_2D_LEVELS) - 1);
|
||||
assert(width <= maxSize);
|
||||
assert(height <= maxSize);
|
||||
|
||||
@@ -691,7 +695,8 @@ draw_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||
}
|
||||
|
||||
if(format != GL_DEPTH_STENCIL &&
|
||||
util_format_get_component_bits(strb->format, UTIL_FORMAT_COLORSPACE_ZS, 0) != 0)
|
||||
util_format_get_component_bits(strb->format,
|
||||
UTIL_FORMAT_COLORSPACE_ZS, 0) != 0)
|
||||
usage = PIPE_TRANSFER_READ_WRITE;
|
||||
else
|
||||
usage = PIPE_TRANSFER_WRITE;
|
||||
@@ -809,7 +814,8 @@ draw_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||
* Called via ctx->Driver.DrawPixels()
|
||||
*/
|
||||
static void
|
||||
st_DrawPixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
|
||||
st_DrawPixels(struct gl_context *ctx, GLint x, GLint y,
|
||||
GLsizei width, GLsizei height,
|
||||
GLenum format, GLenum type,
|
||||
const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels)
|
||||
{
|
||||
@@ -835,7 +841,8 @@ st_DrawPixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
|
||||
if (!pipe->screen->get_param(pipe->screen, PIPE_CAP_SHADER_STENCIL_EXPORT))
|
||||
goto stencil_fallback;
|
||||
|
||||
tex_format = st_choose_format(st->pipe->screen, base_format(format), PIPE_TEXTURE_2D,
|
||||
tex_format = st_choose_format(st->pipe->screen, base_format(format),
|
||||
PIPE_TEXTURE_2D,
|
||||
0, PIPE_BIND_SAMPLER_VIEW);
|
||||
if (tex_format == PIPE_FORMAT_Z24_UNORM_S8_USCALED)
|
||||
stencil_format = PIPE_FORMAT_X24S8_USCALED;
|
||||
@@ -876,12 +883,14 @@ st_DrawPixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
|
||||
|
||||
if (sv[0]) {
|
||||
if (write_stencil) {
|
||||
sv[1] = st_create_texture_sampler_view_format(st->pipe, pt, stencil_format);
|
||||
sv[1] = st_create_texture_sampler_view_format(st->pipe, pt,
|
||||
stencil_format);
|
||||
num_sampler_view++;
|
||||
}
|
||||
|
||||
draw_textured_quad(ctx, x, y, ctx->Current.RasterPos[2],
|
||||
width, height, ctx->Pixel.ZoomX, ctx->Pixel.ZoomY,
|
||||
width, height,
|
||||
ctx->Pixel.ZoomX, ctx->Pixel.ZoomY,
|
||||
sv,
|
||||
num_sampler_view,
|
||||
driver_vp,
|
||||
@@ -895,6 +904,7 @@ st_DrawPixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
stencil_fallback:
|
||||
draw_stencil_pixels(ctx, x, y, width, height, format, type,
|
||||
unpack, pixels);
|
||||
@@ -933,7 +943,8 @@ copy_stencil_pixels(struct gl_context *ctx, GLint srcx, GLint srcy,
|
||||
GL_STENCIL_INDEX, GL_UNSIGNED_BYTE,
|
||||
&ctx->DefaultPacking, buffer);
|
||||
|
||||
if(util_format_get_component_bits(rbDraw->format, UTIL_FORMAT_COLORSPACE_ZS, 0) != 0)
|
||||
if (util_format_get_component_bits(rbDraw->format,
|
||||
UTIL_FORMAT_COLORSPACE_ZS, 0) != 0)
|
||||
usage = PIPE_TRANSFER_READ_WRITE;
|
||||
else
|
||||
usage = PIPE_TRANSFER_WRITE;
|
||||
@@ -1066,7 +1077,8 @@ st_CopyPixels(struct gl_context *ctx, GLint srcx, GLint srcy,
|
||||
|
||||
srcFormat = rbRead->texture->format;
|
||||
|
||||
if (screen->is_format_supported(screen, srcFormat, st->internal_target, sample_count,
|
||||
if (screen->is_format_supported(screen, srcFormat, st->internal_target,
|
||||
sample_count,
|
||||
PIPE_BIND_SAMPLER_VIEW, 0)) {
|
||||
texFormat = srcFormat;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user