Modified Makefile for Linux and updated Visual Studio project files for Linux support, Added infromation to README

master
Tomáš Goldmann 1 week ago
parent 5029165272
commit b993547e4e

5
.gitignore vendored

@ -0,0 +1,5 @@
linux/build
windows/build
linux/boat_sim
windows/boat_sim.exe

@ -4,7 +4,7 @@
Cílem projektu je optimalizovat algoritmus pro výpočet vln na vodě. Tento algoritmus je implementován v souboru `Ocean.cpp`, konkrétně ve funkci `updateVertices` a jejích volaných funkcích. Vaším úkolem bude vytvořit optimalizovanou verzi této funkce pomocí **SSE, AVX** nebo **AVX2**.
Kód můžete implementovat pomocí **intrinsic funkcí** (změňte v `Ocean.h` makro `ASM_TYPE` na `INTRINSIC`) nebo čistě v **GCC inline assembly** v souboru `xlogin00.s` (změňte `ASM_TYPE` na `CLEAR_ASM`).
Kód můžete implementovat pomocí **intrinsic funkcí** (změňte v `Ocean.h` makro `ASM_TYPE` na `INTRINSIC`) nebo čistě v **GCC inline assembly** v souboru `xlogin00.s` (změňte `ASM_TYPE` na `CLEAR_ASM`). Pokud použijete intrinsic funkce, budete řešit zadání v jednodušší variantě, a projekt bude hodnocen přísněji.
## Struktura dat
@ -47,6 +47,16 @@ Odevzdávat budete následující soubory:
- `xlogin00.s`
- `dokumentace.pdf`
## Použití velkých jazykových modelů (ChatGPT, ....).
Během řešení projektu můžete využít jazykové modely za následujících podmínek: budou použity pouze na části kódu, danému kódu budete rozumět a v dokumentaci uvedete, k čemu jste jazykový model použili.
## Obhajoba
Na poslední cvičení bude obhajoba projektu, cílem je ukázat, že projektu rozumíte a víte, co jednotlivé části kódu dělají. V případě, že nebudete schopni vysvětlit, co váš kód dělá, bude to mít negativní vliv na hodnocení.
## Překlad a spuštění
### Windows + VS Code
@ -63,3 +73,11 @@ Pro **Debian-based OS** (Ubuntu, Debian):
sudo apt update
sudo apt install freeglut3-dev libglew-dev libsoil-dev libgl-dev libglu-dev
```
V případě, že používaté VS Code na linuxu, povolte si v nastavení (Preferences) přidávání breakpoint do neznámých souboru (volba Allow Breakpoints Everywhere).
## Bug, bugs,....
Pokud narazíte na problém, napište na goldmann@fit.vutbr.cz.

@ -1,20 +1,15 @@
{
"configurations": [
{
"name": "Win32",
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}\\..\\include"
"${workspaceFolder}/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "${workspaceFolder}\\..\\mingw64\\bin\\g++.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "c++14",
"intelliSenseMode": "linux-clang-x64"
}
],
"version": 4

@ -5,7 +5,7 @@
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "boat_sim",
"program": "${workspaceFolder}/./boat_sim",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",

@ -29,7 +29,7 @@
{
"label": "Run",
"type": "shell",
"command": "boat_sim",
"command": "make run",
"options": {
"cwd": "${workspaceFolder}"
},

@ -4,9 +4,10 @@
CXX = g++
CXXFLAGS = -Wall -g -mavx -msse4 # -Wall for more warnings, -g for debugging symbols
INC_DIR = include
LIBS = -lfreeglut -lglew32 -lSOIL -lopengl32 -lglu32
LIB_DIR = ..\libs
LDFLAGS = -L$(LIB_DIR)
LIBS = -lglut -lSOIL -lGL -lGLEW -lGLU
LIB_DIRS = /usr/lib /usr/lib/x86_64-linux-gnu
LDFLAGS = $(addprefix -L, $(LIB_DIRS))
# Directories
SRC_DIR = src
@ -45,7 +46,7 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.s
# Clean target
clean:
rm -rf $(BUILD_DIR)
rm $(BUILD_DIR)/*
# Debug build target
debug: CXXFLAGS += -DDEBUG -g
@ -58,4 +59,4 @@ run: all
rundebug: debug
gdb ./$(EXECUTABLE_PATH)
.PHONY: all clean debug run rundebug
.PHONY: all clean debug run rundebug

Loading…
Cancel
Save