i965/vec4: Plumb log_data through so the backend_shader field gets set.
Jason plumbed this through a while back in the FS backend, but apparently we were just passing NULL in the vec4 backend. This patch passes brw in as intended. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
@@ -1940,7 +1940,7 @@ brw_vs_emit(struct brw_context *brw,
|
|||||||
if (!assembly) {
|
if (!assembly) {
|
||||||
prog_data->base.dispatch_mode = DISPATCH_MODE_4X2_DUAL_OBJECT;
|
prog_data->base.dispatch_mode = DISPATCH_MODE_4X2_DUAL_OBJECT;
|
||||||
|
|
||||||
vec4_vs_visitor v(brw->intelScreen->compiler,
|
vec4_vs_visitor v(brw->intelScreen->compiler, brw,
|
||||||
c, prog_data, prog, mem_ctx, st_index,
|
c, prog_data, prog, mem_ctx, st_index,
|
||||||
!_mesa_is_gles3(&brw->ctx));
|
!_mesa_is_gles3(&brw->ctx));
|
||||||
if (!v.run(brw_select_clip_planes(&brw->ctx))) {
|
if (!v.run(brw_select_clip_planes(&brw->ctx))) {
|
||||||
|
@@ -77,6 +77,7 @@ class vec4_visitor : public backend_shader, public ir_visitor
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
vec4_visitor(const struct brw_compiler *compiler,
|
vec4_visitor(const struct brw_compiler *compiler,
|
||||||
|
void *log_data,
|
||||||
struct brw_vec4_compile *c,
|
struct brw_vec4_compile *c,
|
||||||
struct gl_program *prog,
|
struct gl_program *prog,
|
||||||
const struct brw_vue_prog_key *key,
|
const struct brw_vue_prog_key *key,
|
||||||
|
@@ -35,12 +35,14 @@ const unsigned MAX_GS_INPUT_VERTICES = 6;
|
|||||||
namespace brw {
|
namespace brw {
|
||||||
|
|
||||||
vec4_gs_visitor::vec4_gs_visitor(const struct brw_compiler *compiler,
|
vec4_gs_visitor::vec4_gs_visitor(const struct brw_compiler *compiler,
|
||||||
|
void *log_data,
|
||||||
struct brw_gs_compile *c,
|
struct brw_gs_compile *c,
|
||||||
struct gl_shader_program *prog,
|
struct gl_shader_program *prog,
|
||||||
void *mem_ctx,
|
void *mem_ctx,
|
||||||
bool no_spills,
|
bool no_spills,
|
||||||
int shader_time_index)
|
int shader_time_index)
|
||||||
: vec4_visitor(compiler, &c->base, &c->gp->program.Base, &c->key.base,
|
: vec4_visitor(compiler, log_data,
|
||||||
|
&c->base, &c->gp->program.Base, &c->key.base,
|
||||||
&c->prog_data.base, prog, MESA_SHADER_GEOMETRY, mem_ctx,
|
&c->prog_data.base, prog, MESA_SHADER_GEOMETRY, mem_ctx,
|
||||||
no_spills, shader_time_index),
|
no_spills, shader_time_index),
|
||||||
c(c)
|
c(c)
|
||||||
@@ -662,7 +664,7 @@ brw_gs_emit(struct brw_context *brw,
|
|||||||
likely(!(INTEL_DEBUG & DEBUG_NO_DUAL_OBJECT_GS))) {
|
likely(!(INTEL_DEBUG & DEBUG_NO_DUAL_OBJECT_GS))) {
|
||||||
c->prog_data.base.dispatch_mode = DISPATCH_MODE_4X2_DUAL_OBJECT;
|
c->prog_data.base.dispatch_mode = DISPATCH_MODE_4X2_DUAL_OBJECT;
|
||||||
|
|
||||||
vec4_gs_visitor v(brw->intelScreen->compiler,
|
vec4_gs_visitor v(brw->intelScreen->compiler, brw,
|
||||||
c, prog, mem_ctx, true /* no_spills */, st_index);
|
c, prog, mem_ctx, true /* no_spills */, st_index);
|
||||||
if (v.run(NULL /* clip planes */)) {
|
if (v.run(NULL /* clip planes */)) {
|
||||||
return generate_assembly(brw, prog, &c->gp->program.Base,
|
return generate_assembly(brw, prog, &c->gp->program.Base,
|
||||||
@@ -704,11 +706,11 @@ brw_gs_emit(struct brw_context *brw,
|
|||||||
const unsigned *ret = NULL;
|
const unsigned *ret = NULL;
|
||||||
|
|
||||||
if (brw->gen >= 7)
|
if (brw->gen >= 7)
|
||||||
gs = new vec4_gs_visitor(brw->intelScreen->compiler,
|
gs = new vec4_gs_visitor(brw->intelScreen->compiler, brw,
|
||||||
c, prog, mem_ctx, false /* no_spills */,
|
c, prog, mem_ctx, false /* no_spills */,
|
||||||
st_index);
|
st_index);
|
||||||
else
|
else
|
||||||
gs = new gen6_gs_visitor(brw->intelScreen->compiler,
|
gs = new gen6_gs_visitor(brw->intelScreen->compiler, brw,
|
||||||
c, prog, mem_ctx, false /* no_spills */,
|
c, prog, mem_ctx, false /* no_spills */,
|
||||||
st_index);
|
st_index);
|
||||||
|
|
||||||
|
@@ -69,6 +69,7 @@ class vec4_gs_visitor : public vec4_visitor
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
vec4_gs_visitor(const struct brw_compiler *compiler,
|
vec4_gs_visitor(const struct brw_compiler *compiler,
|
||||||
|
void *log_data,
|
||||||
struct brw_gs_compile *c,
|
struct brw_gs_compile *c,
|
||||||
struct gl_shader_program *prog,
|
struct gl_shader_program *prog,
|
||||||
void *mem_ctx,
|
void *mem_ctx,
|
||||||
|
@@ -3678,6 +3678,7 @@ vec4_visitor::resolve_bool_comparison(ir_rvalue *rvalue, src_reg *reg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
vec4_visitor::vec4_visitor(const struct brw_compiler *compiler,
|
vec4_visitor::vec4_visitor(const struct brw_compiler *compiler,
|
||||||
|
void *log_data,
|
||||||
struct brw_vec4_compile *c,
|
struct brw_vec4_compile *c,
|
||||||
struct gl_program *prog,
|
struct gl_program *prog,
|
||||||
const struct brw_vue_prog_key *key,
|
const struct brw_vue_prog_key *key,
|
||||||
@@ -3687,7 +3688,7 @@ vec4_visitor::vec4_visitor(const struct brw_compiler *compiler,
|
|||||||
void *mem_ctx,
|
void *mem_ctx,
|
||||||
bool no_spills,
|
bool no_spills,
|
||||||
int shader_time_index)
|
int shader_time_index)
|
||||||
: backend_shader(compiler, NULL, mem_ctx,
|
: backend_shader(compiler, log_data, mem_ctx,
|
||||||
shader_prog, prog, &prog_data->base, stage),
|
shader_prog, prog, &prog_data->base, stage),
|
||||||
c(c),
|
c(c),
|
||||||
key(key),
|
key(key),
|
||||||
|
@@ -212,13 +212,15 @@ vec4_vs_visitor::emit_thread_end()
|
|||||||
|
|
||||||
|
|
||||||
vec4_vs_visitor::vec4_vs_visitor(const struct brw_compiler *compiler,
|
vec4_vs_visitor::vec4_vs_visitor(const struct brw_compiler *compiler,
|
||||||
|
void *log_data,
|
||||||
struct brw_vs_compile *vs_compile,
|
struct brw_vs_compile *vs_compile,
|
||||||
struct brw_vs_prog_data *vs_prog_data,
|
struct brw_vs_prog_data *vs_prog_data,
|
||||||
struct gl_shader_program *prog,
|
struct gl_shader_program *prog,
|
||||||
void *mem_ctx,
|
void *mem_ctx,
|
||||||
int shader_time_index,
|
int shader_time_index,
|
||||||
bool use_legacy_snorm_formula)
|
bool use_legacy_snorm_formula)
|
||||||
: vec4_visitor(compiler, &vs_compile->base, &vs_compile->vp->program.Base,
|
: vec4_visitor(compiler, log_data,
|
||||||
|
&vs_compile->base, &vs_compile->vp->program.Base,
|
||||||
&vs_compile->key.base, &vs_prog_data->base, prog,
|
&vs_compile->key.base, &vs_prog_data->base, prog,
|
||||||
MESA_SHADER_VERTEX,
|
MESA_SHADER_VERTEX,
|
||||||
mem_ctx, false /* no_spills */,
|
mem_ctx, false /* no_spills */,
|
||||||
|
@@ -91,6 +91,7 @@ class vec4_vs_visitor : public vec4_visitor
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
vec4_vs_visitor(const struct brw_compiler *compiler,
|
vec4_vs_visitor(const struct brw_compiler *compiler,
|
||||||
|
void *log_data,
|
||||||
struct brw_vs_compile *vs_compile,
|
struct brw_vs_compile *vs_compile,
|
||||||
struct brw_vs_prog_data *vs_prog_data,
|
struct brw_vs_prog_data *vs_prog_data,
|
||||||
struct gl_shader_program *prog,
|
struct gl_shader_program *prog,
|
||||||
|
@@ -36,12 +36,14 @@ class gen6_gs_visitor : public vec4_gs_visitor
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
gen6_gs_visitor(const struct brw_compiler *comp,
|
gen6_gs_visitor(const struct brw_compiler *comp,
|
||||||
|
void *log_data,
|
||||||
struct brw_gs_compile *c,
|
struct brw_gs_compile *c,
|
||||||
struct gl_shader_program *prog,
|
struct gl_shader_program *prog,
|
||||||
void *mem_ctx,
|
void *mem_ctx,
|
||||||
bool no_spills,
|
bool no_spills,
|
||||||
int shader_time_index) :
|
int shader_time_index) :
|
||||||
vec4_gs_visitor(comp, c, prog, mem_ctx, no_spills, shader_time_index) {}
|
vec4_gs_visitor(comp, log_data, c, prog, mem_ctx, no_spills,
|
||||||
|
shader_time_index) {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void assign_binding_table_offsets();
|
virtual void assign_binding_table_offsets();
|
||||||
|
Reference in New Issue
Block a user