mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 07:10:15 +01:00
Revert "ilo: initialize constant buffer SURFACE_STATE early"
This reverts commit a9b800aa81. With push
constant support, the constructed SURFACE_STATE is unused and wasted. The
change only slows things down.
This commit is contained in:
parent
f423eba46e
commit
8b5b5fe394
4 changed files with 27 additions and 32 deletions
|
|
@ -53,9 +53,6 @@
|
|||
#define ILO_WM_CONST_SURFACE(i) (ILO_MAX_DRAW_BUFFERS + i)
|
||||
#define ILO_WM_TEXTURE_SURFACE(i) (ILO_MAX_DRAW_BUFFERS + ILO_MAX_CONST_BUFFERS + i)
|
||||
|
||||
#define ILO_GPE_VALID_GEN(dev, min_gen, max_gen) \
|
||||
assert((dev)->gen >= ILO_GEN(min_gen) && (dev)->gen <= ILO_GEN(max_gen))
|
||||
|
||||
struct ilo_buffer;
|
||||
struct ilo_texture;
|
||||
struct ilo_shader_state;
|
||||
|
|
@ -470,18 +467,6 @@ ilo_gpe_init_view_surface_for_texture(const struct ilo_dev_info *dev,
|
|||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
ilo_gpe_set_view_surface_bo(const struct ilo_dev_info *dev,
|
||||
struct intel_bo *bo, unsigned offset,
|
||||
struct ilo_view_surface *surf)
|
||||
{
|
||||
ILO_GPE_VALID_GEN(dev, 6, 7);
|
||||
|
||||
/* do not increment reference count */
|
||||
surf->bo = bo;
|
||||
surf->payload[1] = offset;
|
||||
}
|
||||
|
||||
void
|
||||
ilo_gpe_init_zs_surface(const struct ilo_dev_info *dev,
|
||||
const struct ilo_texture *tex,
|
||||
|
|
|
|||
|
|
@ -1873,7 +1873,7 @@ ilo_gpe_init_view_surface_for_buffer_gen6(const struct ilo_dev_info *dev,
|
|||
if (render_cache_rw)
|
||||
dw[0] |= BRW_SURFACE_RC_READ_WRITE;
|
||||
|
||||
dw[1] = (buf) ? offset : 0;
|
||||
dw[1] = offset;
|
||||
|
||||
dw[2] = height << BRW_SURFACE_HEIGHT_SHIFT |
|
||||
width << BRW_SURFACE_WIDTH_SHIFT;
|
||||
|
|
@ -1885,7 +1885,7 @@ ilo_gpe_init_view_surface_for_buffer_gen6(const struct ilo_dev_info *dev,
|
|||
dw[5] = 0;
|
||||
|
||||
/* do not increment reference count */
|
||||
surf->bo = (buf) ? buf->bo : NULL;
|
||||
surf->bo = buf->bo;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -39,6 +39,9 @@
|
|||
#include "ilo_shader.h"
|
||||
#include "ilo_gpe.h"
|
||||
|
||||
#define ILO_GPE_VALID_GEN(dev, min_gen, max_gen) \
|
||||
assert((dev)->gen >= ILO_GEN(min_gen) && (dev)->gen <= ILO_GEN(max_gen))
|
||||
|
||||
#define ILO_GPE_CMD(pipeline, op, subop) \
|
||||
(0x3 << 29 | (pipeline) << 27 | (op) << 24 | (subop) << 16)
|
||||
|
||||
|
|
|
|||
|
|
@ -105,13 +105,18 @@ finalize_constant_buffers(struct ilo_context *ilo)
|
|||
|
||||
/* upload user buffer */
|
||||
if (cbuf->user_buffer) {
|
||||
const enum pipe_format elem_format =
|
||||
PIPE_FORMAT_R32G32B32A32_FLOAT;
|
||||
unsigned offset;
|
||||
|
||||
u_upload_data(ilo->uploader, 0, cbuf->user_buffer_size,
|
||||
cbuf->user_buffer, &offset, &cbuf->resource);
|
||||
|
||||
ilo_gpe_set_view_surface_bo(ilo->dev,
|
||||
ilo_buffer(cbuf->resource)->bo, offset, &cbuf->surface);
|
||||
ilo_gpe_init_view_surface_for_buffer(ilo->dev,
|
||||
ilo_buffer(cbuf->resource),
|
||||
offset, cbuf->user_buffer_size,
|
||||
util_format_get_blocksize(elem_format), elem_format,
|
||||
false, false, &cbuf->surface);
|
||||
|
||||
cbuf->user_buffer = NULL;
|
||||
cbuf->user_buffer_size = 0;
|
||||
|
|
@ -628,18 +633,26 @@ ilo_set_constant_buffer(struct pipe_context *pipe,
|
|||
|
||||
if (buf) {
|
||||
for (i = 0; i < count; i++) {
|
||||
const enum pipe_format elem_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
|
||||
struct ilo_cbuf_cso *cso = &cbuf->cso[index + i];
|
||||
|
||||
pipe_resource_reference(&cso->resource, buf[i].buffer);
|
||||
|
||||
ilo_gpe_init_view_surface_for_buffer(ilo->dev,
|
||||
ilo_buffer(buf[i].buffer),
|
||||
buf[i].buffer_offset, buf[i].buffer_size,
|
||||
util_format_get_blocksize(elem_format), elem_format,
|
||||
false, false, &cso->surface);
|
||||
if (buf[i].buffer) {
|
||||
const enum pipe_format elem_format =
|
||||
PIPE_FORMAT_R32G32B32A32_FLOAT;
|
||||
|
||||
if (buf[i].user_buffer) {
|
||||
ilo_gpe_init_view_surface_for_buffer(ilo->dev,
|
||||
ilo_buffer(buf[i].buffer),
|
||||
buf[i].buffer_offset, buf[i].buffer_size,
|
||||
util_format_get_blocksize(elem_format), elem_format,
|
||||
false, false, &cso->surface);
|
||||
|
||||
cso->user_buffer = NULL;
|
||||
cso->user_buffer_size = 0;
|
||||
|
||||
cbuf->enabled_mask |= 1 << (index + i);
|
||||
}
|
||||
else if (buf[i].user_buffer) {
|
||||
cso->surface.bo = NULL;
|
||||
|
||||
/* buffer_offset does not apply for user buffer */
|
||||
|
|
@ -648,12 +661,6 @@ ilo_set_constant_buffer(struct pipe_context *pipe,
|
|||
|
||||
cbuf->enabled_mask |= 1 << (index + i);
|
||||
}
|
||||
else if (buf[i].buffer) {
|
||||
cso->user_buffer = NULL;
|
||||
cso->user_buffer_size = 0;
|
||||
|
||||
cbuf->enabled_mask |= 1 << (index + i);
|
||||
}
|
||||
else {
|
||||
cso->surface.bo = NULL;
|
||||
cso->user_buffer = NULL;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue