Index: trunk/src/gl/gl_context.cc
===================================================================
--- trunk/src/gl/gl_context.cc	(revision 399)
+++ trunk/src/gl/gl_context.cc	(revision 403)
@@ -379,9 +379,5 @@
 void gl_context::set_viewport( const ivec4& viewport )
 {
-	if ( viewport.z < 0 || viewport.w < 0 )
-	{
-		NV_THROW( logic_error, "viewport width and height must be greater than zero!");
-	}
-
+	NV_ASSERT_ALWAYS( viewport.z > 0 && viewport.w > 0, "viewport dimensions must be greater than zero!" );
 	m_viewport = viewport;
 	glViewport( viewport.x, viewport.y, viewport.z, viewport.w );
@@ -456,11 +452,9 @@
 	}
 
-	if ( scissor.dim.x < 0 || scissor.dim.y < 0 )
-	{
-		NV_THROW( logic_error, "scissor_test.rect width and height must be greater than zero!" );
-	}
 
 	if ( scissor.enabled )
 	{
+		NV_ASSERT_ALWAYS( scissor.dim.x > 0 && scissor.dim.y > 0, "scissor_test.rect dimension equal to zero!" );
+
 		if ( m_render_state.scissor_test.dim != scissor.dim || m_render_state.scissor_test.pos != scissor.pos )
 		{
@@ -514,12 +508,6 @@
 void gl_context::apply_depth_range( const depth_range& range )
 {
-	if ( range.near < 0.0 || range.near > 1.0 )
-	{
-		NV_THROW( logic_error, "render_state.depth_range.near must be between zero and one!");
-	}
-	if ( range.far < 0.0 || range.far > 1.0 )
-	{
-		NV_THROW( logic_error, "render_state.depth_range.far must be between zero and one!");
-	}
+	NV_ASSERT_ALWAYS( range.near >= 0.0 && range.near <= 1.0, "render_state.depth_range.near must be between zero and one!" );
+	NV_ASSERT_ALWAYS( range.far  >= 0.0 && range.far  <= 1.0, "render_state.depth_range.far must be between zero and one!" );
 
 	if ((m_render_state.depth_range.far  != range.far) ||
Index: trunk/src/gl/gl_device.cc
===================================================================
--- trunk/src/gl/gl_device.cc	(revision 399)
+++ trunk/src/gl/gl_device.cc	(revision 403)
@@ -238,6 +238,6 @@
 		if ( fatal )
 		{
-			NV_LOG_ERROR( "Uniform '", name, "' not found in program!" );
-			NV_THROW( runtime_error, ( "Uniform '"+name+"' not found!" ) );
+			NV_LOG_CRITICAL( "gl_device : uniform '", string_view( name ), "' not found in program!" );
+			NV_ABORT( "gl_device : uniform not found!" );
 		}
 	}
@@ -257,6 +257,6 @@
 		if ( fatal )
 		{
-			NV_LOG_ERROR( "Attribute '", name, "' not found in program!" );
-			NV_THROW( runtime_error, ( "Attribute '"+ name + "' not found!" ) );
+			NV_LOG_CRITICAL( "gl_device : attribute '", string_view( name ), "' not found in program!" );
+			NV_ABORT( "gl_device : attribute not found!" );
 		}
 	}
