mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
broadcom/vc4: Build the vc4_tiling_lt_neon.c with -mfpu=neon on ARM.
If you don't pass this, the compiler refuses to compile the assembly for
pre-v7 CPUs. This also keeps us from building identical, non-NEON code on
aarch64 and x86.
Fixes: a373f77662 ("vc4: Use a wrapper file to set VC4_BUILD_NEON instead of CFLAGS.")
v2: Fix Android build by just appending NEON_C_SOURCES when
ARCH_ARM_HAVE_NEON.
Tested-by: Rob Herring <robh@kernel.org>
This commit is contained in:
parent
ba8533b6ea
commit
bd5efbd70b
4 changed files with 24 additions and 7 deletions
|
|
@ -28,6 +28,10 @@ include $(CLEAR_VARS)
|
|||
LOCAL_SRC_FILES := \
|
||||
$(C_SOURCES)
|
||||
|
||||
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
||||
LOCAL_SRC_FILES += $(NEON_C_SOURCES)
|
||||
endif
|
||||
|
||||
LOCAL_GENERATED_SOURCES := $(MESA_GEN_NIR_H)
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/include/drm-uapi
|
||||
|
|
|
|||
|
|
@ -44,6 +44,13 @@ libvc4_la_LIBADD = \
|
|||
$(top_builddir)/src/broadcom/cle/libbroadcom_cle.la \
|
||||
$()
|
||||
|
||||
if HAVE_ARM_ASM
|
||||
noinst_LTLIBRARIES += libvc4_neon.la
|
||||
libvc4_la_LIBADD += libvc4_neon.la
|
||||
libvc4_neon_la_SOURCES = $(NEON_C_SOURCES)
|
||||
libvc4_neon_la_CFLAGS = $(AM_CFLAGS) -mfpu=neon
|
||||
endif
|
||||
|
||||
libvc4_la_LDFLAGS = $(SIM_LDFLAGS)
|
||||
|
||||
EXTRA_DIST = kernel/README
|
||||
|
|
|
|||
|
|
@ -57,7 +57,8 @@ C_SOURCES := \
|
|||
vc4_state.c \
|
||||
vc4_tiling.c \
|
||||
vc4_tiling_lt.c \
|
||||
vc4_tiling_lt_neon.c \
|
||||
vc4_tiling.h \
|
||||
vc4_uniforms.c \
|
||||
$()
|
||||
|
||||
NEON_C_SOURCES := vc4_tiling_lt_neon.c
|
||||
|
|
|
|||
|
|
@ -89,13 +89,15 @@ vc4_load_lt_image(void *dst, uint32_t dst_stride,
|
|||
void *src, uint32_t src_stride,
|
||||
int cpp, const struct pipe_box *box)
|
||||
{
|
||||
#ifdef USE_ARM_ASM
|
||||
if (util_cpu_caps.has_neon) {
|
||||
vc4_load_lt_image_neon(dst, dst_stride, src, src_stride,
|
||||
cpp, box);
|
||||
} else {
|
||||
vc4_load_lt_image_base(dst, dst_stride, src, src_stride,
|
||||
cpp, box);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
vc4_load_lt_image_base(dst, dst_stride, src, src_stride,
|
||||
cpp, box);
|
||||
}
|
||||
|
||||
static inline void
|
||||
|
|
@ -103,13 +105,16 @@ vc4_store_lt_image(void *dst, uint32_t dst_stride,
|
|||
void *src, uint32_t src_stride,
|
||||
int cpp, const struct pipe_box *box)
|
||||
{
|
||||
#ifdef USE_ARM_ASM
|
||||
if (util_cpu_caps.has_neon) {
|
||||
vc4_store_lt_image_neon(dst, dst_stride, src, src_stride,
|
||||
cpp, box);
|
||||
} else {
|
||||
vc4_store_lt_image_base(dst, dst_stride, src, src_stride,
|
||||
cpp, box);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
vc4_store_lt_image_base(dst, dst_stride, src, src_stride,
|
||||
cpp, box);
|
||||
}
|
||||
|
||||
#endif /* VC4_TILING_H */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue