cmake fixes. makefile clean up. load gles3 driver with sdl

add FindSDL2.cmake and don't provide wrong hint
cmake: option to disable vulkan
don't use/link with egl if using sdl
remove ARM_HARDFP and use standard __ARM_PCS_VFP #def
hide texture upscaling options if no openmp
This commit is contained in:
Flyinghead 2021-03-21 18:00:01 +01:00
parent 06be0d927b
commit d8a25e73f2
9 changed files with 297 additions and 76 deletions

View File

@ -15,6 +15,7 @@ option(USE_GLES "Use GLES[3] API" OFF)
option(USE_GLES2 "Use GLES2 API" OFF)
option(USE_HOST_LIBZIP "Use host libzip" ON)
option(USE_OPENMP "Use OpenMP if available" ON)
option(USE_VULKAN "Build with Vulkan support" ON)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/shell/cmake")
@ -148,8 +149,10 @@ if(MINGW)
target_link_libraries(${PROJECT_NAME} PRIVATE "-static-libgcc -static-libstdc++")
endif()
if(NOT ANDROID)
if(WIN32)
find_package(SDL2 HINTS "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL/cmake")
elseif(NOT ANDROID)
find_package(SDL2)
endif()
if(SDL2_FOUND)
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_SDL USE_SDL_AUDIO)
@ -228,7 +231,7 @@ if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE)
target_link_libraries(${PROJECT_NAME} PRIVATE opagent)
endif()
find_package(miniupnpc)
find_package(Miniupnpc)
if (MINIUPNP_FOUND)
target_include_directories(${PROJECT_NAME} PRIVATE ${MINIUPNP_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} PRIVATE ${MINIUPNP_LIBRARIES})
@ -238,10 +241,12 @@ endif()
if(UNIX AND NOT APPLE AND NOT ANDROID)
if(USE_GLES2)
target_compile_definitions(${PROJECT_NAME} PRIVATE GLES GLES2)
target_link_libraries(${PROJECT_NAME} PRIVATE GLESv2 EGL)
target_link_libraries(${PROJECT_NAME} PRIVATE GLESv2)
elseif(USE_GLES)
target_compile_definitions(${PROJECT_NAME} PRIVATE GLES GLES3)
target_link_libraries(${PROJECT_NAME} PRIVATE EGL)
if(NOT SDL2_FOUND)
target_link_libraries(${PROJECT_NAME} PRIVATE EGL)
endif()
else()
set(OpenGL_GL_PREFERENCE LEGACY)
find_package(OpenGL REQUIRED)
@ -795,7 +800,7 @@ target_sources(${PROJECT_NAME} PRIVATE
core/rend/TexCache.cpp
core/rend/TexCache.h)
if(NOT (APPLE OR ANDROID OR USE_GLES))
if(NOT (APPLE OR ANDROID OR USE_GLES OR USE_GLES2))
target_sources(${PROJECT_NAME} PRIVATE
core/rend/gl4/abuffer.cpp
core/rend/gl4/gl4.h
@ -804,7 +809,7 @@ if(NOT (APPLE OR ANDROID OR USE_GLES))
core/rend/gl4/gltex.cpp)
endif()
if(NOT APPLE)
if(USE_VULKAN AND NOT APPLE)
if(ANDROID)
set(VOLK_STATIC_DEFINES VK_USE_PLATFORM_ANDROID_KHR)
elseif(X11_FOUND)

View File

@ -247,7 +247,7 @@
#define SH4_RAM_CLOCK (100*1000*1000) //[100000000] XTal(13.5) -> PLL (33.3) -> PLL 1:3 (100) , also suplied to HOLLY chip
#define G2_BUS_CLOCK (25*1000*1000) //[25000000] from Holly, from SH4_RAM_CLOCK w/ 2 2:1 plls
#if defined(GLES) && !defined(GLES3)
#if defined(GLES) && !defined(GLES3) && !defined(GLES2)
// Only use GL ES 2.0 API functions
#define GLES2
#endif

View File

@ -72,16 +72,6 @@ ifdef FOR_WINDOWS
RZDCY_CFLAGS += -I$(RZDCY_SRC_DIR)/deps/dirent
endif
ifdef FOR_PANDORA
RZDCY_CFLAGS += \
$(CFLAGS) -c -O3 \
-DNDEBUG -DPANDORA\
-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp \
-frename-registers -fsingle-precision-constant -ffast-math \
-ftree-vectorize -fomit-frame-pointer
RZDCY_CFLAGS += -march=armv7-a -mtune=cortex-a8 -mfpu=neon
endif
ifdef USE_VULKAN
ifdef FOR_WINDOWS
RZDCY_CFLAGS += -DVK_USE_PLATFORM_WIN32_KHR

View File

@ -464,59 +464,42 @@ void ngen_CC_Param(shil_opcode* op,shil_param* par,CanonicalParamType tp)
switch(tp)
{
case CPT_f32rv:
#ifdef ARM_HARDFP
{
#ifdef __ARM_PCS_VFP
// -mfloat-abi=hard
if (reg.IsAllocg(*par))
{
//printf("MOV(reg.map(*par),r0); %d\n",reg.map(*par));
VMOV(reg.mapg(*par),f0);
}
VMOV(reg.mapg(*par), f0);
else if (reg.IsAllocf(*par))
{
//VMOV(reg.mapf(*par),0,r0); %d\n",reg.map(*par));
VMOV(reg.mapfs(*par),f0);
}
}
break;
#endif
VMOV(reg.mapfs(*par), f0);
break;
#endif
case CPT_u32rv:
case CPT_u64rvL:
{
if (reg.IsAllocg(*par))
{
//printf("MOV(reg.map(*par),r0); %d\n",reg.map(*par));
MOV(reg.mapg(*par),r0);
}
else if (reg.IsAllocf(*par))
{
//VMOV(reg.mapf(*par),0,r0); %d\n",reg.map(*par));
VMOV(reg.mapfs(*par),r0);
}
else
die("unhandled param");
}
if (reg.IsAllocg(*par))
MOV(reg.mapg(*par), r0);
else if (reg.IsAllocf(*par))
VMOV(reg.mapfs(*par), r0);
else
die("unhandled param");
break;
case CPT_u64rvH:
{
verify(reg.IsAllocg(*par));
MOV(reg.mapg(*par),r1);
}
verify(reg.IsAllocg(*par));
MOV(reg.mapg(*par), r1);
break;
case CPT_u32:
case CPT_ptr:
case CPT_f32:
{
CC_PS t={tp,par};
CC_PS t = { tp, par };
CC_pars.push_back(t);
}
break;
default:
die("invalid tp");
break;
}
}
@ -536,42 +519,30 @@ void ngen_CC_Call(shil_opcode* op, void* function)
{
if (param.par->is_reg())
{
#ifdef ARM_HARDFP
#ifdef __ARM_PCS_VFP
// -mfloat-abi=hard
if (param.type == CPT_f32)
{
if (reg.IsAllocg(*param.par))
{
//printf("MOV((eReg)rd,reg.map(*param.par)); %d %d\n",rd,reg.map(*param.par));
VMOV((eFSReg)fd, reg.mapg(*param.par));
}
else if (reg.IsAllocf(*param.par))
{
//printf("LoadSh4Reg_mem((eReg)rd, *param.par); %d\n",rd);
VMOV((eFSReg)fd, reg.mapfs(*param.par));
}
else
die("Must not happen!\n");
die("Must not happen!");
continue;
}
#endif
if (reg.IsAllocg(*param.par))
{
//printf("MOV((eReg)rd,reg.map(*param.par)); %d %d\n",rd,reg.map(*param.par));
MOV((eReg)rd, reg.mapg(*param.par));
}
else if (reg.IsAllocf(*param.par))
{
//printf("LoadSh4Reg_mem((eReg)rd, *param.par); %d\n",rd);
VMOV((eReg)rd, reg.mapfs(*param.par));
}
else
die("Must not happen!\n");
die("Must not happen!");
}
else
{
verify(param.par->is_imm());
//printf("MOV32((eReg)rd, param.par->_imm); %d\n",rd);
MOV32((eReg)rd, param.par->_imm);
}
}

View File

@ -1338,12 +1338,14 @@ static void gui_display_settings()
}
if (ImGui::CollapsingHeader("Texture Upscaling", ImGuiTreeNodeFlags_DefaultOpen))
{
#ifndef TARGET_NO_OPENMP
OptionSlider("Texture Upscaling", config::TextureUpscale, 1, 8,
"Upscale textures with the xBRZ algorithm. Only on fast platforms and for certain 2D games");
OptionSlider("Upscaled Texture Max Size", config::MaxFilteredTextureSize, 8, 1024,
"Textures larger than this dimension squared will not be upscaled");
OptionSlider("Max Threads", config::MaxThreads, 1, 8,
"Maximum number of threads to use for texture upscaling. Recommended: number of physical cores minus one");
#endif
OptionCheckbox("Load Custom Textures", config::CustomTextures,
"Load custom/high-res textures from data/textures/<game id>");
}

View File

@ -18,10 +18,14 @@
*/
#include <stddef.h>
#include <GLES32/gl32.h>
#include <EGL/egl.h>
#if defined(GLES3) && defined(__ANDROID__)
#include <dlfcn.h>
#endif
#ifdef USE_SDL
#include <SDL2/SDL.h>
#else
#include <EGL/egl.h>
#endif
#include "gl32funcs.h"
#include "build.h"
@ -30,12 +34,16 @@ void load_gles_symbols()
#ifdef GLES3
for (int i = 0; rglgen_symbol_map[i].sym != NULL; i++)
{
#ifdef USE_SDL
*(void **)rglgen_symbol_map[i].ptr = SDL_GL_GetProcAddress(rglgen_symbol_map[i].sym);
#else
#if defined(__ANDROID__)
//try to load via dlsym -- older android (< 4.4?) can't load everything via eglGetProcAddress
*(void **)rglgen_symbol_map[i].ptr = (void*)dlsym(RTLD_DEFAULT, rglgen_symbol_map[i].sym);
if (*(void **)rglgen_symbol_map[i].ptr == NULL)
#endif
*(void **)rglgen_symbol_map[i].ptr = eglGetProcAddress(rglgen_symbol_map[i].sym);
#endif
}
#endif
}

250
shell/cmake/FindSDL2.cmake Normal file
View File

@ -0,0 +1,250 @@
# - Find SDL2
# Find the SDL2 headers and libraries
#
# SDL2::SDL2 - Imported target to use for building a library
# SDL2::SDL2main - Imported interface target to use if you want SDL and SDLmain.
# SDL2_FOUND - True if SDL2 was found.
# SDL2_DYNAMIC - If we found a DLL version of SDL (meaning you might want to copy a DLL from SDL2::SDL2)
#
# Original Author:
# 2015 Ryan Pavlik <ryan.pavlik@gmail.com> <abiryan@ryand.net>
#
# Copyright Sensics, Inc. 2015.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
# Set up architectures (for windows) and prefixes (for mingw builds)
if(WIN32)
if(MINGW)
include(MinGWSearchPathExtras OPTIONAL)
if(MINGWSEARCH_TARGET_TRIPLE)
set(SDL2_PREFIX ${MINGWSEARCH_TARGET_TRIPLE})
endif()
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(SDL2_LIB_PATH_SUFFIX lib/x64)
if(NOT MSVC AND NOT SDL2_PREFIX)
set(SDL2_PREFIX x86_64-w64-mingw32)
endif()
else()
set(SDL2_LIB_PATH_SUFFIX lib/x86)
if(NOT MSVC AND NOT SDL2_PREFIX)
set(SDL2_PREFIX i686-w64-mingw32)
endif()
endif()
endif()
if(SDL2_PREFIX)
set(SDL2_ORIGPREFIXPATH ${CMAKE_PREFIX_PATH})
if(SDL2_ROOT_DIR)
list(APPEND CMAKE_PREFIX_PATH "${SDL2_ROOT_DIR}")
endif()
if(CMAKE_PREFIX_PATH)
foreach(_prefix ${CMAKE_PREFIX_PATH})
list(APPEND CMAKE_PREFIX_PATH "${_prefix}/${SDL2_PREFIX}")
endforeach()
endif()
if(MINGWSEARCH_PREFIXES)
list(APPEND CMAKE_PREFIX_PATH ${MINGWSEARCH_PREFIXES})
endif()
endif()
# Invoke pkgconfig for hints
find_package(PkgConfig QUIET)
set(SDL2_INCLUDE_HINTS)
set(SDL2_LIB_HINTS)
if(PKG_CONFIG_FOUND)
pkg_search_module(SDL2PC QUIET sdl2)
if(SDL2PC_INCLUDE_DIRS)
set(SDL2_INCLUDE_HINTS ${SDL2PC_INCLUDE_DIRS})
endif()
if(SDL2PC_LIBRARY_DIRS)
set(SDL2_LIB_HINTS ${SDL2PC_LIBRARY_DIRS})
endif()
endif()
include(FindPackageHandleStandardArgs)
find_library(SDL2_LIBRARY
NAMES
SDL2
HINTS
${SDL2_LIB_HINTS}
PATHS
${SDL2_ROOT_DIR}
ENV SDL2DIR
PATH_SUFFIXES lib SDL2 ${SDL2_LIB_PATH_SUFFIX})
set(_sdl2_framework FALSE)
# Some special-casing if we've found/been given a framework.
# Handles whether we're given the library inside the framework or the framework itself.
if(APPLE AND "${SDL2_LIBRARY}" MATCHES "(/[^/]+)*.framework(/.*)?$")
set(_sdl2_framework TRUE)
set(SDL2_FRAMEWORK "${SDL2_LIBRARY}")
# Move up in the directory tree as required to get the framework directory.
while("${SDL2_FRAMEWORK}" MATCHES "(/[^/]+)*.framework(/.*)$" AND NOT "${SDL2_FRAMEWORK}" MATCHES "(/[^/]+)*.framework$")
get_filename_component(SDL2_FRAMEWORK "${SDL2_FRAMEWORK}" DIRECTORY)
endwhile()
if("${SDL2_FRAMEWORK}" MATCHES "(/[^/]+)*.framework$")
set(SDL2_FRAMEWORK_NAME ${CMAKE_MATCH_1})
# If we found a framework, do a search for the header ahead of time that will be more likely to get the framework header.
find_path(SDL2_INCLUDE_DIR
NAMES
SDL_haptic.h # this file was introduced with SDL2
HINTS
"${SDL2_FRAMEWORK}/Headers/")
else()
# For some reason we couldn't get the framework directory itself.
# Shouldn't happen, but might if something is weird.
unset(SDL2_FRAMEWORK)
endif()
endif()
find_path(SDL2_INCLUDE_DIR
NAMES
SDL_haptic.h # this file was introduced with SDL2
HINTS
${SDL2_INCLUDE_HINTS}
PATHS
${SDL2_ROOT_DIR}
ENV SDL2DIR
PATH_SUFFIXES include include/sdl2 include/SDL2 SDL2)
if(WIN32 AND SDL2_LIBRARY)
find_file(SDL2_RUNTIME_LIBRARY
NAMES
SDL2.dll
libSDL2.dll
HINTS
${SDL2_LIB_HINTS}
PATHS
${SDL2_ROOT_DIR}
ENV SDL2DIR
PATH_SUFFIXES bin lib ${SDL2_LIB_PATH_SUFFIX})
endif()
if(WIN32 OR ANDROID OR IOS OR (APPLE AND NOT _sdl2_framework))
set(SDL2_EXTRA_REQUIRED SDL2_SDLMAIN_LIBRARY)
find_library(SDL2_SDLMAIN_LIBRARY
NAMES
SDL2main
PATHS
${SDL2_ROOT_DIR}
ENV SDL2DIR
PATH_SUFFIXES lib ${SDL2_LIB_PATH_SUFFIX})
endif()
if(MINGW AND NOT SDL2PC_FOUND)
find_library(SDL2_MINGW_LIBRARY mingw32)
find_library(SDL2_MWINDOWS_LIBRARY mwindows)
endif()
if(SDL2_PREFIX)
# Restore things the way they used to be.
set(CMAKE_PREFIX_PATH ${SDL2_ORIGPREFIXPATH})
endif()
# handle the QUIETLY and REQUIRED arguments and set QUATLIB_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SDL2
DEFAULT_MSG
SDL2_LIBRARY
SDL2_INCLUDE_DIR
${SDL2_EXTRA_REQUIRED})
if(SDL2_FOUND)
if(NOT TARGET SDL2::SDL2)
# Create SDL2::SDL2
if(WIN32 AND SDL2_RUNTIME_LIBRARY)
set(SDL2_DYNAMIC TRUE)
add_library(SDL2::SDL2 SHARED IMPORTED)
set_target_properties(SDL2::SDL2
PROPERTIES
IMPORTED_IMPLIB "${SDL2_LIBRARY}"
IMPORTED_LOCATION "${SDL2_RUNTIME_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
)
else()
add_library(SDL2::SDL2 UNKNOWN IMPORTED)
if(SDL2_FRAMEWORK AND SDL2_FRAMEWORK_NAME)
# Handle the case that SDL2 is a framework and we were able to decompose it above.
set_target_properties(SDL2::SDL2 PROPERTIES
IMPORTED_LOCATION "${SDL2_FRAMEWORK}/${SDL2_FRAMEWORK_NAME}")
elseif(_sdl2_framework AND SDL2_LIBRARY MATCHES "(/[^/]+)*.framework$")
# Handle the case that SDL2 is a framework and SDL_LIBRARY is just the framework itself.
# This takes the basename of the framework, without the extension,
# and sets it (as a child of the framework) as the imported location for the target.
# This is the library symlink inside of the framework.
set_target_properties(SDL2::SDL2 PROPERTIES
IMPORTED_LOCATION "${SDL2_LIBRARY}/${CMAKE_MATCH_1}")
else()
# Handle non-frameworks (including non-Mac), as well as the case that we're given the library inside of the framework
set_target_properties(SDL2::SDL2 PROPERTIES
IMPORTED_LOCATION "${SDL2_LIBRARY}")
endif()
set_target_properties(SDL2::SDL2
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
)
endif()
if(APPLE)
# Need Cocoa here, is always a framework
find_library(SDL2_COCOA_LIBRARY Cocoa)
list(APPEND SDL2_EXTRA_REQUIRED SDL2_COCOA_LIBRARY)
if(SDL2_COCOA_LIBRARY)
set_target_properties(SDL2::SDL2 PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES ${SDL2_COCOA_LIBRARY})
endif()
endif()
# Compute what to do with SDL2main
set(SDL2MAIN_LIBRARIES SDL2::SDL2)
add_library(SDL2::SDL2main INTERFACE IMPORTED)
if(SDL2_SDLMAIN_LIBRARY)
add_library(SDL2::SDL2main_real STATIC IMPORTED)
set_target_properties(SDL2::SDL2main_real
PROPERTIES
IMPORTED_LOCATION "${SDL2_SDLMAIN_LIBRARY}")
set(SDL2MAIN_LIBRARIES SDL2::SDL2main_real ${SDL2MAIN_LIBRARIES})
endif()
if(MINGW)
# MinGW requires some additional libraries to appear earlier in the link line.
if(SDL2PC_LIBRARIES)
# Use pkgconfig-suggested extra libraries if available.
list(REMOVE_ITEM SDL2PC_LIBRARIES SDL2main SDL2)
set(SDL2MAIN_LIBRARIES ${SDL2PC_LIBRARIES} ${SDL2MAIN_LIBRARIES})
else()
# fall back to extra libraries specified in pkg-config in
# an official binary distro of SDL2 for MinGW I downloaded
if(SDL2_MINGW_LIBRARY)
set(SDL2MAIN_LIBRARIES ${SDL2_MINGW_LIBRARY} ${SDL2MAIN_LIBRARIES})
endif()
if(SDL2_MWINDOWS_LIBRARY)
set(SDL2MAIN_LIBRARIES ${SDL2_MWINDOWS_LIBRARY} ${SDL2MAIN_LIBRARIES})
endif()
endif()
set_target_properties(SDL2::SDL2main
PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "main=SDL_main")
endif()
set_target_properties(SDL2::SDL2main
PROPERTIES
INTERFACE_LINK_LIBRARIES "${SDL2MAIN_LIBRARIES}")
endif()
mark_as_advanced(SDL2_ROOT_DIR)
endif()
mark_as_advanced(SDL2_LIBRARY
SDL2_RUNTIME_LIBRARY
SDL2_INCLUDE_DIR
SDL2_SDLMAIN_LIBRARY
SDL2_COCOA_LIBRARY
SDL2_MINGW_LIBRARY
SDL2_MWINDOWS_LIBRARY)

View File

@ -155,7 +155,6 @@ else ifneq (,$(findstring armv7h,$(platform)))
MFLAGS += -mfpu=neon
ASFLAGS += -mfpu=neon
endif
CFLAGS += -DARM_HARDFP -fsingle-precision-constant
USE_GLES := 1
# LinCPP
@ -168,7 +167,6 @@ else ifneq (,$(findstring lincpp,$(platform)))
# Raspberry Pi
else ifneq (,$(findstring rpi,$(platform)))
CFLAGS += -DARM_HARDFP -fsingle-precision-constant
ifneq (,$(findstring rpi2,$(platform)))
MFLAGS += -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
ASFLAGS += -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
@ -198,19 +196,17 @@ else ifneq (,$(findstring beagle,$(platform)))
CC_PREFIX ?= arm-none-linux-gnueabi-
MFLAGS += -marm -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp -funroll-loops
ASFLAGS := -march=armv7-a -mfpu=neon -mfloat-abi=softfp
CFLAGS += -fsingle-precision-constant
USE_GLES := 1
# Pandora
else ifneq (,$(findstring pandora,$(platform)))
FOR_PANDORA := 1
USE_X11 := 1
USE_SDL := 1
PGO_USE := 1
USE_GLES := 1
MFLAGS +== -marm -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -funroll-loops -fpermissive
MFLAGS += -marm -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -funroll-loops -ftree-vectorize -fomit-frame-pointer
ASFLAGS += -march=armv7-a -mfpu=neon -mfloat-abi=softfp
CFLAGS += -D TARGET_PANDORA -D WEIRD_SLOWNESS -fsingle-precision-constant
CFLAGS += -D TARGET_PANDORA -DPANDORA
# ODROIDs
else ifneq (,$(findstring odroid,$(platform)))
@ -249,7 +245,7 @@ else ifneq (,$(findstring rockchip,$(platform)))
MFLAGS += -marm -march=armv8-a+crc -mfpu=neon -mfloat-abi=hard -funroll-loops -mtune=cortex-a53
ASFLAGS += -march=armv8-a+crc -mfpu=neon -mfloat-abi=hard
CXXFLAGS += -fexceptions
CFLAGS += -fsingle-precision-constant -DMESA_EGL_NO_X11_HEADERS=1 -DEGL_NO_X11=1 -fpermissive -fno-builtin-sqrtf
CFLAGS += -DMESA_EGL_NO_X11_HEADERS=1 -DEGL_NO_X11=1 -fpermissive -fno-builtin-sqrtf
INCS += -I/opt/vc/include/ -I/opt/vc/include/libdrm
LIBS += -ldrm -lGLESv2
USE_GLES := 1
@ -266,7 +262,6 @@ else ifneq (,$(findstring vero4k,$(platform)))
MFLAGS += -mfpu=neon
ASFLAGS += -mfpu=neon
endif
CFLAGS += -DARM_HARDFP -fsingle-precision-constant
INCS += -I/opt/vero3/include/
LIBS += -L/opt/vero3/lib/ -lEGL -lGLESv2
USE_GLES := 1
@ -308,7 +303,7 @@ include $(RZDCY_SRC_DIR)/core.mk
LDFLAGS += -g -Wl,-Map,$(notdir $@).map,--gc-sections -Wl,-O3 -Wl,--sort-common -fopenmp
CFLAGS += $(RZDCY_CFLAGS) -g -O3 -D NDEBUG -c -fopenmp #-D NO_REND
CFLAGS += -frename-registers -fno-strict-aliasing
CFLAGS += -frename-registers -fno-strict-aliasing -fsingle-precision-constant
CFLAGS += -ftree-vectorize -Wall -Wno-unused-result
CXXFLAGS += $(RZDCY_CFLAGS) -fno-rtti -fno-operator-names -D_GLIBCXX_USE_CXX11_ABI=0 -std=gnu++11