st/mesa: use st_access_flags_to_transfer_flags() helper in more places
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
1852a2e1a2
commit
77bc74e674
|
@ -47,6 +47,7 @@
|
||||||
#include "pipe/p_screen.h"
|
#include "pipe/p_screen.h"
|
||||||
#include "st_atom.h"
|
#include "st_atom.h"
|
||||||
#include "st_context.h"
|
#include "st_context.h"
|
||||||
|
#include "st_cb_bufferobjects.h"
|
||||||
#include "st_cb_fbo.h"
|
#include "st_cb_fbo.h"
|
||||||
#include "st_cb_flush.h"
|
#include "st_cb_flush.h"
|
||||||
#include "st_cb_texture.h"
|
#include "st_cb_texture.h"
|
||||||
|
@ -780,7 +781,6 @@ st_MapRenderbuffer(struct gl_context *ctx,
|
||||||
struct st_renderbuffer *strb = st_renderbuffer(rb);
|
struct st_renderbuffer *strb = st_renderbuffer(rb);
|
||||||
struct pipe_context *pipe = st->pipe;
|
struct pipe_context *pipe = st->pipe;
|
||||||
const GLboolean invert = rb->Name == 0;
|
const GLboolean invert = rb->Name == 0;
|
||||||
unsigned usage;
|
|
||||||
GLuint y2;
|
GLuint y2;
|
||||||
GLubyte *map;
|
GLubyte *map;
|
||||||
|
|
||||||
|
@ -800,13 +800,13 @@ st_MapRenderbuffer(struct gl_context *ctx,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
usage = 0x0;
|
/* Check for unexpected flags */
|
||||||
if (mode & GL_MAP_READ_BIT)
|
assert((mode & ~(GL_MAP_READ_BIT |
|
||||||
usage |= PIPE_TRANSFER_READ;
|
GL_MAP_WRITE_BIT |
|
||||||
if (mode & GL_MAP_WRITE_BIT)
|
GL_MAP_INVALIDATE_RANGE_BIT)) == 0);
|
||||||
usage |= PIPE_TRANSFER_WRITE;
|
|
||||||
if (mode & GL_MAP_INVALIDATE_RANGE_BIT)
|
const enum pipe_transfer_usage transfer_flags =
|
||||||
usage |= PIPE_TRANSFER_DISCARD_RANGE;
|
st_access_flags_to_transfer_flags(mode, false);
|
||||||
|
|
||||||
/* Note: y=0=bottom of buffer while y2=0=top of buffer.
|
/* Note: y=0=bottom of buffer while y2=0=top of buffer.
|
||||||
* 'invert' will be true for window-system buffers and false for
|
* 'invert' will be true for window-system buffers and false for
|
||||||
|
@ -821,7 +821,7 @@ st_MapRenderbuffer(struct gl_context *ctx,
|
||||||
strb->texture,
|
strb->texture,
|
||||||
strb->surface->u.tex.level,
|
strb->surface->u.tex.level,
|
||||||
strb->surface->u.tex.first_layer,
|
strb->surface->u.tex.first_layer,
|
||||||
usage, x, y2, w, h, &strb->transfer);
|
transfer_flags, x, y2, w, h, &strb->transfer);
|
||||||
if (map) {
|
if (map) {
|
||||||
if (invert) {
|
if (invert) {
|
||||||
*rowStrideOut = -(int) strb->transfer->stride;
|
*rowStrideOut = -(int) strb->transfer->stride;
|
||||||
|
|
|
@ -254,19 +254,18 @@ st_MapTextureImage(struct gl_context *ctx,
|
||||||
{
|
{
|
||||||
struct st_context *st = st_context(ctx);
|
struct st_context *st = st_context(ctx);
|
||||||
struct st_texture_image *stImage = st_texture_image(texImage);
|
struct st_texture_image *stImage = st_texture_image(texImage);
|
||||||
unsigned pipeMode;
|
|
||||||
GLubyte *map;
|
GLubyte *map;
|
||||||
struct pipe_transfer *transfer;
|
struct pipe_transfer *transfer;
|
||||||
|
|
||||||
pipeMode = 0x0;
|
/* Check for unexpected flags */
|
||||||
if (mode & GL_MAP_READ_BIT)
|
assert((mode & ~(GL_MAP_READ_BIT |
|
||||||
pipeMode |= PIPE_TRANSFER_READ;
|
GL_MAP_WRITE_BIT |
|
||||||
if (mode & GL_MAP_WRITE_BIT)
|
GL_MAP_INVALIDATE_RANGE_BIT)) == 0);
|
||||||
pipeMode |= PIPE_TRANSFER_WRITE;
|
|
||||||
if (mode & GL_MAP_INVALIDATE_RANGE_BIT)
|
|
||||||
pipeMode |= PIPE_TRANSFER_DISCARD_RANGE;
|
|
||||||
|
|
||||||
map = st_texture_image_map(st, stImage, pipeMode, x, y, slice, w, h, 1,
|
const enum pipe_transfer_usage transfer_flags =
|
||||||
|
st_access_flags_to_transfer_flags(mode, false);
|
||||||
|
|
||||||
|
map = st_texture_image_map(st, stImage, transfer_flags, x, y, slice, w, h, 1,
|
||||||
&transfer);
|
&transfer);
|
||||||
if (map) {
|
if (map) {
|
||||||
if (st_etc_fallback(st, texImage)) {
|
if (st_etc_fallback(st, texImage)) {
|
||||||
|
|
Loading…
Reference in New Issue