mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-29 00:50:23 +01: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> (cherry picked from commitbd5efbd70b) [Emil Velikov: address libvc4_la_LIBADD conflicts] Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Conflicts: src/gallium/drivers/vc4/Makefile.am
This commit is contained in:
parent
833f12abdf
commit
93bd5fbfe1
4 changed files with 25 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
|
||||
|
|
|
|||
|
|
@ -39,6 +39,14 @@ noinst_LTLIBRARIES = libvc4.la
|
|||
|
||||
libvc4_la_SOURCES = $(C_SOURCES)
|
||||
libvc4_la_LIBADD = $(SIM_LIB)
|
||||
|
||||
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