From patchwork Mon Feb 4 15:27:20 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Lespiau, Damien" X-Patchwork-Id: 2092801 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id B53FDDFE82 for ; Mon, 4 Feb 2013 15:41:36 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A8D9CE60E0 for ; Mon, 4 Feb 2013 07:41:36 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 403B9E60E7 for ; Mon, 4 Feb 2013 07:29:17 -0800 (PST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP; 04 Feb 2013 07:29:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.84,600,1355126400"; d="scan'208";a="257441728" Received: from unknown (HELO dyon.amr.corp.intel.com) ([10.255.12.132]) by orsmga001.jf.intel.com with ESMTP; 04 Feb 2013 07:29:16 -0800 From: Damien Lespiau To: intel-gfx@lists.freedesktop.org Date: Mon, 4 Feb 2013 15:27:20 +0000 Message-Id: <1359991705-5254-26-git-send-email-damien.lespiau@intel.com> X-Mailer: git-send-email 1.7.7.5 In-Reply-To: <1359991705-5254-1-git-send-email-damien.lespiau@intel.com> References: <1359991705-5254-1-git-send-email-damien.lespiau@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] =?utf-8?q?=5BPATCH_25/90=5D_assembler=3A_Introduce_st?= =?utf-8?q?ruct_brw=5Fcontext?= X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org A lot of the mesa code use struct brw_context to get the GPU generation and various information. Let's stub this structure and initialize it ourselves to be able to resuse mesa's code untouched. Signed-off-by: Damien Lespiau --- assembler/Makefile.am | 2 + assembler/brw_context.c | 44 ++++++++++++++++++++++++++++++++++ assembler/brw_context.h | 60 +++++++++++++++++++++++++++++++++++++++++++++++ assembler/brw_eu.h | 1 + 4 files changed, 107 insertions(+), 0 deletions(-) create mode 100644 assembler/brw_context.c create mode 100644 assembler/brw_context.h diff --git a/assembler/Makefile.am b/assembler/Makefile.am index d4733d3..9bd3289 100644 --- a/assembler/Makefile.am +++ b/assembler/Makefile.am @@ -11,6 +11,8 @@ gram.h: gram.c intel_gen4asm_SOURCES = \ brw_compat.h \ + brw_context.c \ + brw_context.h \ ralloc.c \ ralloc.h \ brw_defines.h \ diff --git a/assembler/brw_context.c b/assembler/brw_context.c new file mode 100644 index 0000000..6f2a964 --- /dev/null +++ b/assembler/brw_context.c @@ -0,0 +1,44 @@ +/* + * Copyright © 2013 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include "brw_context.h" + +static bool +intel_init_context(struct intel_context *intel, int gen) +{ + memset(intel, 0, sizeof(struct intel_context)); + intel->gen = gen / 10; + intel->is_haswell = gen == 75; + if (intel->gen >= 5) + intel->needs_ff_sync = true; + + return true; +} + +bool +brw_init_context(struct brw_context *brw, int gen) +{ + return intel_init_context(&brw->intel, gen); +} diff --git a/assembler/brw_context.h b/assembler/brw_context.h new file mode 100644 index 0000000..f0e3a35 --- /dev/null +++ b/assembler/brw_context.h @@ -0,0 +1,60 @@ +/* + * Copyright © 2013 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * To share code with mesa without having to do big modifications and still be + * able to sync files together at a later point, this file stubs the fields + * of struct brw_context used by the code we import. + */ + +#ifndef __BRW_CONTEXT_H__ +#define __BRW_CONTEXT_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct intel_context +{ + int gen; + int gt; + bool is_haswell; + bool is_g4x; + bool needs_ff_sync; +}; + +struct brw_context +{ + struct intel_context intel; +}; + +bool +brw_init_context(struct brw_context *brw, int gen); + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif /* __BRW_CONTEXT_H__ */ diff --git a/assembler/brw_eu.h b/assembler/brw_eu.h index 262a40b..f3e99fa 100644 --- a/assembler/brw_eu.h +++ b/assembler/brw_eu.h @@ -34,6 +34,7 @@ #define BRW_EU_H #include +#include "brw_context.h" #include "brw_structs.h" #include "brw_defines.h" #include "brw_reg.h"