# nv30f_compile_options.txt
#
# Set compiler options via flags. Any line
# that begins with a # character is ignored.
#
# Set COMPILE_ONLY to 1 to generate fragment code,
# but not bind the program at run time. For debugging.
#
# Set CHECK_GL_ERRORS to check for OpenGL errors at
# run-time. For debugging. Not recommended for use with
# WhamBlam driver.
#
# Set NO_WARNINGS to 1 to suppress compiler warning
# messages.
#
# Set NO_PACK_INTERPOLANTS to 1 to prevent the
# compiler from packing interpolants together.
# If set to 0, for example, then the compiler
# will attempt to pack two scalar interpolants
# into the same register.
#
# Set EMIT_DEEPEST_FIRST to 1 to emit code for the
# deepest expression subtree first. Otherwise
# emits code from left to right.
#
# Set MULTIPASS to 1 to use the multipass compiler.
# Set MULTIPASS to 0 to force all shaders to compile
# to a single pass; an error is generated if a shader
# fails to fit in a pass.
#
# Set RENDER_TEXTURE to 1 to use the ARB_render_texture
# extension for multipass rendering. Set RENDER_TEXTURE
# to 0 to save passes by copying from the framebuffer,
# which is more expensive (in theory). This setting is
# irrelevant if MULTIPASS is set to 0.
#
# Set DUMP_ISELECT to 1 to print code with comments
# after instruction selection.
#
# Set DUMP_VERIFY to 1 to print code with comments
# after hardware constraint verification, a stage
# where extra MOV instructions may be inserted to
# ensure that register-sourcing constraints are met.
#
# Set DUMP_LIVENESS to 1 to print liveness analysis
# results.
#
# Set DUMP_PREOPT to 1 to print code with comments
# after optimization, but before register allocation.
#
# Set DUMP_REG_ALLOC to 1 to print code with comments
# after register allocation and to see register
# allocation results.
#
# Set DUMP_POSTOPT to 1 to print code with comments
# after the final optimization phase, after register
# allocation.
#
# Set DUMP_FINAL_OUTPUT to 1 to see the final
# generated code, no comments.
#
# Set DUMP_ANALYSIS to 1 to see statistics gathered
# for the final code, including the number of
# instructions, the instruction count breakdown,
# resource use, etc.
#
# Set DUMP_PASS_ANALYSIS to 1 to see statistics
# for the pass decomposition, including resource
# usage breakdown (for each pass).  MULTIPASS must
# be set to 1.
#
# Set DUMP_DECOMP_CONCISE to 1 to see statistics
# for the pass decomposition in concise form.
# MULTIPASS must be set to 1.
#
# Set DEBUG_VTEMPS to 1 to see the allocation of
# vertex-to-fragment interpolants dumped.
#
# Set OVERRIDE to 1 to enable an override program
# whose name is given by OVERRIDE_FILE.
#
# Set OVERRIDE_FILE to the name of a file that is
# assumed to be in the same directory as the
# executable. If OVERRIDE is set to 1, then for
# a given shader, the compiler will still generate
# code, but instead of using that code at run time,
# will bind the fragment program whose text is
# contained in the file OVERRIDE_FILE. This means,
# for example, that you can edit the OVERRIDE_FILE
# before switching to another shader. For debugging.
#
# Set NO_OPTS to 1 to disable all optimizations.
#
# Set OPT_IDENTITY to 1 to remove algebraic identities.
# Set OPT_MOVS to 1 to remove redundant MOV instructions.
# Set OPT_DEAD_CODE to 1 to remove dead code.
# Set OPT_VECTORIZE to 1 to parallelize scalar ops.
# Set OPT_MAD to 1 to collapse MUL, ADD to MAD.
#
# Set OPT_NUM_PASSES to the number of times to
# perform the core set of optimizations, both
# before and after register allocation.
#
# Set COMPILE_TIME to 1 to print an estimate of
# the time required to compile each shader.
#
# ------------------------------------------------------------
# Hardware constants.  These directives are intended to allow
# you to experiment with different architecture constraints.
# Obviously, nv30 has a very specific set of constraints,
# so if you set these directives to values that are higher
# than what the architecture supports, the run-time system
# may fail or even crash.  Set COMPILE_ONLY = 1 to disable the
# run-time system.  If COMPILE_ONLY = 0 and the hw constants
# are set too high, the compiler will issue a warning once.
#
# Set MAX_OPS to the maximum number of instructions
# allowed per-pass by the compiler.  The default is 1024.
#
# Set MAX_INTERPS to the maximum number of interpolants
# allowed per-pass by the compiler.  The default is 8.
#
# Set MAX_TEX to the maximum number of texture units
# allowed per-pass by the compiler.  The default is 16.
#
# Set MAX_REGS to the maximum number of fp32 registers
# allowed per-pass by the compiler.  The number of
# fp16 registers will automatically be set to twice this
# value.  The default is 32 fp32 regs, 64 fp16 regs.
#
# Eric Chan
# March 9, 2002
#

COMPILE_ONLY            = 0
CHECK_GL_ERRORS         = 0
NO_PACK_INTERPOLANTS    = 0
EMIT_DEEPEST_FIRST      = 0
MULTIPASS               = 0
RENDER_TEXTURE          = 0
NO_WARNINGS             = 0

MAX_OPS                 = 1024
MAX_INTERPS             = 8
MAX_TEX                 = 16
MAX_REGS                = 32

# Debugging levels.
DUMP_ISELECT            = 0
DUMP_VERIFY             = 0
DUMP_LIVENESS           = 0
DUMP_PREOPT             = 0
DUMP_REG_ALLOC          = 0
DUMP_POSTOPT            = 0
DUMP_FINAL_OUTPUT       = 0
DUMP_ANALYSIS           = 0
DUMP_PASS_ANALYSIS      = 0
DUMP_DECOMP_CONCISE     = 0

DEBUG_VTEMPS            = 0

# Dump intermediate represention -> .dot file.
DUMP_IR_DOT             = 0

# Dump instruction dag -> .dot file.
DUMP_IS_DOT             = 0

# Dump pass decomposition -> .dot file.
DUMP_PASS_DOT           = 0

# Override feature.
OVERRIDE                = 0
OVERRIDE_FILE           = nv30f_override.fp

# Disable optimization.
NO_OPTS                 = 0

# Optimization flags.
OPT_IDENTITY            = 1
OPT_MOVS                = 1
OPT_DEAD_CODE           = 1
OPT_VECTORIZE           = 1
OPT_MAD                 = 1

OPT_NUM_PASSES          = 2

COMPILE_TIME            = 0
