boolean nvc0_compute_validate_program(struct nvc0_context *nvc0) { struct nvc0_program *prog = nvc0->compprog; if (prog->mem) return TRUE; if (!prog->translated) { prog->translated = nvc0_program_translate( prog, nvc0->screen->base.device->chipset); if (!prog->translated) return FALSE; } if (unlikely(!prog->code_size)) return FALSE; if (likely(prog->code_size)) { if (nvc0_program_upload_code(nvc0, prog)) { struct nouveau_pushbuf *push = nvc0->base.pushbuf; BEGIN_NVC0(push, NVC0_COMPUTE(FLUSH), 1); PUSH_DATA (push, NVC0_COMPUTE_FLUSH_CODE); return TRUE; } } return FALSE; }
static INLINE boolean nvc0_program_validate(struct nvc0_context *nvc0, struct nvc0_program *prog) { if (prog->res) return TRUE; if (!prog->translated) { prog->translated = nvc0_program_translate(prog); if (!prog->translated) return FALSE; } if (likely(prog->code_size)) return nvc0_program_upload_code(nvc0, prog); return TRUE; /* stream output info only */ }
static inline bool nvc0_program_validate(struct nvc0_context *nvc0, struct nvc0_program *prog) { if (prog->mem) return true; if (!prog->translated) { prog->translated = nvc0_program_translate( prog, nvc0->screen->base.device->chipset, &nvc0->base.debug); if (!prog->translated) return false; } if (likely(prog->code_size)) return nvc0_program_upload_code(nvc0, prog); return true; /* stream output info only */ }