diff options
-rw-r--r-- | src/gallium/drivers/i915/i915_state_emit.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gallium/drivers/i915/i915_state_emit.c b/src/gallium/drivers/i915/i915_state_emit.c index 590a1baa420..7b4b02ee620 100644 --- a/src/gallium/drivers/i915/i915_state_emit.c +++ b/src/gallium/drivers/i915/i915_state_emit.c @@ -370,6 +370,11 @@ validate_program(struct i915_context *i915, unsigned *batch_space) { uint additional_size = 0; + if (!i915->fs->program_len) { + *batch_space = 0; + return; + } + additional_size += i915->current.target_fixup_format ? 3 : 0; /* we need more batch space if we want to emulate rgba framebuffers */ @@ -382,12 +387,13 @@ emit_program(struct i915_context *i915) uint additional_size = 0; uint i; + if (!i915->fs->program_len) + return; + /* count how much additional space we'll need */ validate_program(i915, &additional_size); additional_size -= i915->fs->decl_len + i915->fs->program_len; - /* we should always have, at least, a pass-through program */ - assert(i915->fs->program_len > 0); /* output the declarations */ { |