WUT_Computer_Science/NotProgramming/SDM2/presentations/my_thesis/sections/02-narzedzia.tex
Krzysztof kuhy Rudnicki ffa5dad02a Split 19 over-cap LaTeX reports, proving each PDF is unchanged
The 250-line cap applies to prose too, and the reports were the worst
offenders -- ENUME's projectA.tex alone was 1,876 lines. Each is now a
preamble plus one \input{} per section, which is how a long LaTeX document is
normally organised; not one byte of prose was rewritten.

"The PDF is unchanged" is checked by a script rather than by eye, because
hashing the PDF cannot work: pdflatex stamps a /CreationDate and an /ID into
every build, so two runs of the SAME source already differ. tex_fingerprint.sh
compares what a reader sees instead -- page count plus a hash of the extracted
text -- and it is stable across rebuilds of untouched sources, which is the
property that makes it usable as a gate.

It earned its keep immediately. Both ECOTE reports quote an example LaTeX
document inside an lstlisting block, so \end{document} appears in the middle
of the file; splitting on the FIRST one stranded everything after it. Same
page count, different text, caught automatically. EOPSY lab3 exposed a second
bug: a \section{} title that runs onto the next line.

Result: 19 .tex over the cap -> 1. The survivor,
ELAC/.../03-building-nfa-...tex, is 418 lines of consecutive tikz figures
with no subsection to split on and needs a hand-placed boundary.

Verified: 29 splits across two passes (section, then subsection for the
pieces still over), every one reporting `unchanged` from
scripts/tex_fingerprint.sh --check.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE
2026-08-28 19:47:12 +02:00

186 lines
6.2 KiB
TeX

\section{Narzędzia}
\frametitle{Unity Profiler}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{unity_profiler.png}}
\begin{frame}
\end{frame}
}
\frametitle{Unreal Profiler}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{unreal_profiler.jpg}}
\begin{frame}
\end{frame}
}
\frametitle{Nvidia nsight}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{nvida_nsighty.jpg}}
\begin{frame}
\end{frame}
}
\begin{frame}
\frametitle{Nsight - Analiza FPS}
\center
\includegraphics[width=1\textwidth]{fps_overview.png}
% Ile klatek pokazaliśmy na ile
% ile trwała średnio klatka
% Ile trwała najkrótsza klatka
% Ile trwała najdłuższa klatka
% Przeciętne klatki na sekundę dla pokazanego wycinka
% Tyle lub mniej czasu trwało 99% klatek
\end{frame}
\begin{frame}
\frametitle{Nsight - Analiza FPS}
\center
\includegraphics[width=1\textwidth]{stutter_row.png}
% Wykrywanie "zawieszek"
% Wykrywamy klatki których długość
% jest znacznie dłuższa od długości mediany pobliskich 19 klatek
% zawieszka musi być dłuższa niż 4 milisekundy
\end{frame}
\begin{frame}
\frametitle{Nsight - Analiza FPS}
\center
\includegraphics[width=1\textwidth]{dx12_frame_health.png}
% Możemy sprawdzić jaka klatka miała zawieszkę
% I jaka metoda w api tę zawieszkę spowodowała
\end{frame}
\begin{frame}
\frametitle{Nsight - Zużycie VRAM}
\center
\includegraphics[width=1\textwidth]{memory_utilization_gpu_vram.png}
% Zielony -> ile pamięci mamy dostępnej
% Pomarańczowy -> ile pamięci zużyliśmy
% VidMm Device Suspension -> okresy czasku kiedy przetransferowano
% Jeden duży zasób pamięci
% Demoted Memory -> w GPU mamy local memory (szybsze) i global memory
% (wolniejsze) to może nam mówić o "wyciekach" pamięci
% źle zooptymalizowanej pamięci itd.
% Allokacja pamięci -> zielone aplikacja, szare -> system
\end{frame}
\begin{frame}
\frametitle{Nsight - Zużycie VRAM}
\center
\includegraphics[width=1\textwidth]{memory_utilization_resource_migrations.png}
% W kolejności co najwięcej zużyło zasobów
% Konkretnie ile i kiedy
\end{frame}
\begin{frame}
\frametitle{Nsight - Zużycie VRAM}
\center
\includegraphics[width=1\textwidth]{memory_utilization_memory_transfer.png}
% W kolejności co najwięcej zużyło zasobów
% Konkretnie ile i kiedy
\end{frame}
\begin{frame}
\frametitle{Jak porównywać?}
\begin{itemize}
\item Stworzenie gry na obu
\item Porównywanie istniejących gier
\item Porównanie samych edytorów
\end{itemize}
\end{frame}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{maxresdefault (1).jpg}}
\begin{frame}
\end{frame}
}
\begin{frame}
\frametitle{Wybór gatunku}
FPS:
\begin{itemize}
\item Wystarczająco skomplikowany
\item Grafika
\item Fizyka
\item Klasyczny benchmark
% Wolfenstein, Doom, Quake, Crysis
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Problem}
Inklinacja Silnika \\
\begin{itemize}
\item $ \frac{2478}{39713} \approx 6\% $ gier Unity to FPS \\
\item $ \frac{1765}{11158} \approx 15\% $ gier Unreal to FPS \\
\end{itemize}
Źródło: steamdb.info
\end{frame}
\begin{frame}
\frametitle{Wybór gatunku}
Bullet hell:
\begin{itemize}
\item Wystarczająco skomplikowany
\item Grafika
\item Czas jest ważny
% W Bullet hell czas jest ważny, gra musi być płynna
\end{itemize}
\end{frame}
{
\setbeamercolor{footline}{fg=white}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth, height=\paperheight]
{maxresdefault.jpg}}
\begin{frame}
\end{frame}
}
\begin{frame}
\frametitle{Wyzwania}
\begin{itemize}
\item Sprzęt
% Ten sam, jeden i ten sam komputer użyty w procesie kreacji obu
\item Umiejętności
% Nie mam
\item Podobne wersje silnika
% Użyje ostatniego LTS
\item Inklinacja Silnika \\ (3\% Unity, 2.4\% Unreal)
% ??? Ch
% 1577 FPS UNITY, 271 FPS UNREAL
% 39713 Total Unity, 11158 Total Unreal (proporcjonalnie 2 razy więcej :<)
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Ocena łatwości użycia}
\begin{itemize}
\item Dokumentacja
\item Intuicyjność
\item Materiały
\item Zasoby (Assety)
\item Dostępne funkcje
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Po stworzeniu}
Przejść obie gry, monitorując przy użyciu Nvidia Nsight i porównać wyniki
\end{frame}